vueにおける親子コンポーネントの相互伝達
12347 ワード
子の父
論理:サブコンポーネントのボタンをクリックし、そのクリックイベントをトリガー$emitで親カスタムイベントをトリガーし、親に値を渡す
父の伝子
論理:親から子への値の転送はprops:[]のみで親要素を子に渡します.
//注意:コンポーネント内のすべてのpropsのデータは、親コンポーネントを介して子コンポーネントに渡される//propsのデータであり、読み取り専用であり、再割り当てはできません//現在のコンポーネントラベルに対応する属性の属性値を取得できます
論理:サブコンポーネントのボタンをクリックし、そのクリックイベントをトリガー$emitで親カスタムイベントをトリガーし、親に値を渡す
// , func , ???
// emit : , 、
// this.$emit('func123', 123, 456)
//
<div id="id">
2
3 <h3> -- {{age}}h3>
4
5 <con1 @getage='getage'>con1>
6 div>
7
8 <template id="son1">
9
10 <div>
11 <h3> <input type="button" value=" " @click='click'>h3>
12 div>
13
14 template>
15
16 <script>
17 // Vue
18 var ss = new Vue({
19 el:'#id',
20 data:{
21 // age
22 age:' '
23 },
24 methods:{
25 //getage(age) age age
26
27 getage(age){
28 this.age = age
29 }
30 },
31
32 components:{
33 //
34 con1:{
35 template:"#son1",
36 data(){
37 return {
38 age:22
39 }
40 },
41 methods:{
42 // click $emit
43 click(){
44 this.$emit('getage',this.age)
45 }
46 }
47 }
48 }
49
50 })
51
52 script>
父の伝子
論理:親から子への値の転送はprops:[]のみで親要素を子に渡します.
//注意:コンポーネント内のすべてのpropsのデータは、親コンポーネントを介して子コンポーネントに渡される//propsのデータであり、読み取り専用であり、再割り当てはできません//現在のコンポーネントラベルに対応する属性の属性値を取得できます
<div id="id">
<h2> {{money}}h2>
<con1 :money='money'>con1>
div>
<script>
var ss = new Vue({
el:'#id',
data:{
money:1000000
},
methods:{
},
//
components:{
con1:{
template:' , {{money}}
',
props:['money'] // money , props , , ,
}
}
})
script>