色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

vue 2.0組件通信

夏志豪2年前9瀏覽0評論

Vue 2.0提供了多種方式來實現組件通信,包括props&events、$emit&$on、bus、Vuex等。其中,props和events是最基礎、最常用的組件通信方式。

props&events:父組件向子組件傳遞數據,通過向子組件中定義props傳遞數據,子組件通過調用$emit方法觸發自定義事件,從而將信息傳遞回父組件。

//子組件
<template>
<div>
<p>子組件展示數據:{{ childData }}</p>
<button @click="emitData">給父組件發送數據</button>
</div>
</template>
<script>
export default {
name: 'child',
//定義props
props: ['childData'],
methods: {
emitData() {
//觸發自定義事件
this.$emit('getData', '來自子組件的數據');
}
}
}
</script>
//父組件
<template>
<div>
<p>父組件展示數據:{{ parentData }}</p><child :childData="parentData" @getData="getDataFromChild"></child>
</div>
</template>
<script>
export default {
name: 'parent',
data() {
return {
parentData: '父組件的數據'
}
},
methods: {
//接收子組件的數據
getDataFromChild(data) {
console.log(data);
}
}
}
</script>

$emit&$on:子組件向父組件傳遞數據,通過調用$emit方法觸發自定義事件,從而向父組件傳遞數據,在父組件中通過$on監聽該事件,從而獲取子組件的傳遞數據。

//子組件
<template>
<div>
<p>子組件展示數據:{{ childData }}</p>
<button @click="emitData">給父組件發送數據</button>
</div>
</template>
<script>
export default {
name: 'child',
data() {
return {
childData: '子組件的數據'
}
},
methods: {
emitData() {
//觸發自定義事件,傳遞數據
this.$emit('getData', this.childData);
}
}
}
</script>
//父組件
<template>
<div>
<p>父組件展示數據:{{ parentData }}</p><child @getData="getDataFromChild"></child>
</div>
</template>
<script>
export default {
name: 'parent',
data() {
return {
parentData: ''
}
},
methods: {
//接收子組件傳遞的數據
getDataFromChild(data) {
//更新父組件數據
this.parentData = data;
}
}
}
</script>