單向數(shù)據(jù)流
- Vue 提倡單向數(shù)據(jù)流,即父組件通過
props 傳遞數(shù)據(jù)到子組件,子數(shù)據(jù)無權(quán)修改父組件的數(shù)據(jù)。目的時為了防止應(yīng)用數(shù)據(jù)的流向邊得混亂,難以理解。
- 只能通過
$emit 派發(fā)一個自定義事件給父組件,由父組件來修改數(shù)據(jù)
父子組件間通信
- 父組件通過
:data="data" 傳遞數(shù)據(jù)
- 父組件通過
@fun="fun" 傳遞方法
// 父組件 $emitFa.vue
<template>
<div>
<h1>父組件數(shù)據(jù):{{msg}}</h1>
<emit-ch :sendData="msg" @updateInfo="updateInfo"></emit-ch>
</div>
</template>
<script>
import emitCh from './$emitCh'
export default {
components: { emitCh },
data () {
return {
msg: '北京'
}
},
methods: {
updateInfo (data) {
this.msg = data.city
}
}
}
</script>
- 子組件通過
props 接收父組件傳遞的值
- 子組件通過
$emit 調(diào)用父組件的方法并傳遞數(shù)據(jù)
// 子組件 $emitCh.vue
<template>
<div>
<h3>父組件傳給子組件的數(shù)據(jù):{{sendData}}</h3>
<br/>
<button @click='select()'>調(diào)用父組件的 updateInfo 方法</button>
</div>
</template>
<script>
export default {
props: ['sendData'], // 接收父組件的數(shù)據(jù)
data () {
return {
}
},
methods: {
select () {
let data = {
city: '上海'
}
this.$emit('updateInfo', data) // 觸發(fā)父組件的 updateInfo方法
}
}
}
</script>
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。