国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Vue中組件之間數據的傳遞的示例代碼

2019-11-19 15:30:29
字體:
來源:轉載
供稿:網友

Vue中組件的作用域是隔離的,父組件中的數值子組件看不到!也就是說,用angular作比喻,組件的scope天生是scope:()的!
如果父組件需要往子組件中傳數據,此時應該使用標簽屬性:

<div id="app">   <my-compo c="886"></my-compo></div>

子組件中,用props聲明這個值即可。并且在template里面可以直接使用{{c}}來獲得這個屬性,而不需要寫為{{this.props.c}}

import Vue from "vue";const MyCompo = Vue.extend({  template : `    <div>      <h1>我是MyCompo組件,我的a值是{{a}}</h1>      <h1>子組件c:{{c}}</h1>      <input type="button" value="+++" v-on:click="add"/>    </div>  `,  props : ["c"],  data : function(){    return {      a : 1,       b : 2    }  },  methods : {    add : function(){      this.a ++;    }  }});export default MyCompo;

如果父組件中要傳一個動態的值(就是父組件的data,不是死數),此時要用v-bind:來傳遞。
v-bind指令表示動態屬性。

<div id="app">   <my-compo v-bind:c="c"></my-compo></div>

此時我們研究,子組件改變了這個值,父組件的值變不變。答:默認情況下不變!

<my-compo v-bind:c="c"></my-compo>import Vue from "vue";const MyCompo = Vue.extend({  template : `    <div>      <h1>我是MyCompo組件,我的a值是{{a}},我的c值是:{{c}}</h1>      <input type="button" value="+++" v-on:click="add"/>    </div>  `,  props : ["c"],  methods : {    add : function(){      this.c ++;    }  }});export default MyCompo;

子組件的c值變化了,但是外面不變!

也就是說,默認情況下,父組件中的屬性值如果傳給兒子,子組件改變這個值,僅僅改變子組件中的值,父組件中的值不變。

如果非要讓子組件能夠改變父組件中的值,要加sync修飾符:

<my-compo v-bind:c.sync="c"></my-compo>

上面的c屬性是一個基本類型值常數3。此時我們試試引用類型值。

父組件中增加d屬性,值是json。

import Vue from "vue";import MyCompo from "./components/MyCompo.js";new Vue({  el : "#app",  data : {    c : 333,    d : {      v : 8888    }  },  components : {    "my-compo" : MyCompo  }});

傳給子組件:

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <title>Vue學習</title></head><body>  <div id="app">    <h1>我是父親,我的c: {{c}} ,我的d:{{d | json}}</h1>     <my-compo v-bind:c.sync="c" v-bind:d="d"></my-compo>  </div>  <script type="text/javascript" src="public/bundle.js"></script></body></html>

子組件改變d的時候,父親也變了!!!雖然我們沒加.sync。

總結:

Vue中基本類型值默認單向傳遞,雙向加sync。

引用類型值,默認雙向傳遞。

小tip,v-bind的縮寫語法就是冒號。

屬性可以驗證類型、必填等等。

props : {    "c" : null,    "d" : null,    "e" : {      type : Number,      required : true    }},

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中牟县| 韩城市| 龙山县| 东港市| 房产| 苏尼特右旗| 普安县| 张家界市| 鲜城| 时尚| 区。| 德惠市| 双峰县| 山阴县| 大埔县| 长武县| 佛坪县| 甘德县| 筠连县| 固始县| 绍兴县| 杂多县| 柘荣县| 吉木萨尔县| 克什克腾旗| 乌鲁木齐市| 沙坪坝区| 沂源县| 宽城| 扬中市| 罗甸县| 鲁甸县| 宜良县| 定边县| 萨迦县| 三原县| 叶城县| 永春县| 蓝山县| 确山县| 正蓝旗|