vue實(shí)現(xiàn)父子組件雙向綁定的方法總結(jié)
"Vue.js 是一種流行的 JavaScript 框架,它提供了一種簡(jiǎn)單且高效的方式來(lái)構(gòu)建用戶界面。在 Vue 中,父子組件之間的雙向綁定是一種常見(jiàn)的需求,可以通過(guò)以下幾種方法來(lái)實(shí)現(xiàn)。
1.使用 props 和 $emit 父組件通過(guò) props 向子組件傳遞數(shù)據(jù),子組件通過(guò) $emit 觸發(fā)自定義事件來(lái)通知父組件數(shù)據(jù)的變化。這種方式可以實(shí)現(xiàn)父子組件之間的雙向綁定效果。示例代碼如下:
父組件:
<template>
<div>
<input v-model=\"message\" />
<child-component :message=\"message\" @update-message=\"message = $event\" />
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
data() {
return {
message: ''
};
},
components: {
ChildComponent
}
};
</script>
子組件:
<template>
<div>
<input v-model=\"localMessage\" @input=\"$emit('update-message', localMessage)\" />
</div>
</template>
<script>
export default {
props: ['message'],
data() {
return {
localMessage: this.message
};
},
watch: {
message(newValue) {
this.localMessage = newValue;
}
}
};
</script>
2.使用 v-model 和 sync 修飾符 Vue 提供了 v-model 指令,可以在父子組件之間實(shí)現(xiàn)雙向數(shù)據(jù)綁定。但是默認(rèn)情況下,v-model 只會(huì)向子組件傳遞數(shù)據(jù),不會(huì)將子組件的變化反饋給父組件。為了實(shí)現(xiàn)雙向綁定,可以使用 sync 修飾符。示例代碼如下:
父組件:
<template>
<div>
<input v-model=\"message\" />
<child-component :message.sync=\"message\" />
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
data() {
return {
message: ''
};
},
components: {
ChildComponent
}
};
</script>
子組件:
<template>
<div>
<input v-model=\"localMessage\" />
</div>
</template>
<script>
export default {
props: ['message'],
data() {
return {
localMessage: this.message
};
},
watch: {
localMessage(newValue) {
this.$emit('update:message', newValue);
}
}
};
</script>
以上就是兩種常見(jiàn)的實(shí)現(xiàn)父子組件雙向綁定的方法。通過(guò)這些方法,父子組件之間可以實(shí)現(xiàn)數(shù)據(jù)的雙向傳遞和同步,從而實(shí)現(xiàn)更靈活和高效的組件通信。"
到此這篇關(guān)于vue實(shí)現(xiàn)父子組件雙向綁定的方法總結(jié)的文章就介紹到這了,更多相關(guān)vue父子組件雙向綁定內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vite打包性能優(yōu)化之開(kāi)啟Gzip壓縮實(shí)踐過(guò)程
vue前端項(xiàng)目發(fā)布的時(shí)候,打包可實(shí)現(xiàn)gzip格式的壓縮,下面這篇文章主要給大家介紹了關(guān)于Vite打包性能優(yōu)化之開(kāi)啟Gzip壓縮的相關(guān)資料,需要的朋友可以參考下2022-12-12
詳解VUE里子組件如何獲取父組件動(dòng)態(tài)變化的值
這篇文章主要介紹了詳解VUE里子組件如何獲取父組件動(dòng)態(tài)變化的值,子組件通過(guò)props獲取父組件傳過(guò)來(lái)的數(shù)據(jù),子組件存在操作傳過(guò)來(lái)的數(shù)據(jù)并且傳遞給父組件,需要的朋友可以參考下2018-12-12
vue2 如何實(shí)現(xiàn)div contenteditable=“true”(類似于v-model)的效果
這篇文章主要給大家介紹了利用vue2如何實(shí)現(xiàn)div contenteditable="true",就是類似于v-model的效果,文中給出了兩種解決的思路,對(duì)大家具有一定的參考價(jià)值,有需要的朋友們下面來(lái)一起看看吧。2017-02-02
Vue?2中實(shí)現(xiàn)CustomRef方式防抖節(jié)流
這篇文章主要為大家介紹了Vue?2中實(shí)現(xiàn)CustomRef方式防抖節(jié)流示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
Echarts+VUE柱狀圖繪制細(xì)節(jié)并且屏幕自適應(yīng)完整代碼
柱狀圖(或稱條形圖)是一種通過(guò)柱形的長(zhǎng)度來(lái)表現(xiàn)數(shù)據(jù)大小的一種常用圖表類型,這篇文章主要給大家介紹了關(guān)于Echarts+VUE柱狀圖繪制細(xì)節(jié)并且屏幕自適應(yīng)的相關(guān)資料,需要的朋友可以參考下2024-02-02
Vue響應(yīng)式原理深入解析及注意事項(xiàng)
Vue 最顯著的一個(gè)功能是響應(yīng)系統(tǒng) —— 模型只是普通對(duì)象,修改它則更新視圖。下面這篇文章主要給大家深入講解了關(guān)于Vue的響應(yīng)式原理,以及Vue響應(yīng)式的一些注意事項(xiàng),需要的朋友下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12
結(jié)合mint-ui移動(dòng)端下拉加載實(shí)踐方法總結(jié)
下面小編就為大家?guī)?lái)一篇結(jié)合mint-ui移動(dòng)端下拉加載實(shí)踐方法總結(jié)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
利用vue組件自定義v-model實(shí)現(xiàn)一個(gè)Tab組件方法示例
這篇文章主要給大家介紹了關(guān)于利用vue組件自定義v-model實(shí)現(xiàn)一個(gè)Tab組件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12

