最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue中使用v-model完成組件間的通信

 更新時間:2019年08月22日 10:09:41   作者:麥籬落  
vue中有一個很神奇的東西叫v-model,它可以完成我們的需求。,本文重點給大家介紹vue中使用v-model完成組件間的通信,需要的朋友可以參考下

以上的兩種方法,都是實現(xiàn)的單向數(shù)組傳遞,那如何實現(xiàn)兩個組件之間的雙向傳遞呢?

即,在父組件中修改了值,子組件會立即更新。

在子組件中修改了值,父組件中立即更新。

vue中有一個很神奇的東西叫v-model,它可以完成我們的需求。

使用v-model過程中,父組件我們還是需要將子組件正常引入,只是傳值方式改成了v-model

父組件

<template>
 <div>
 {{fatherText}}
 <Child v-model="fatherText"></Child>//調(diào)用子組件,并將 fatherText傳遞給子組件
 <button @click="changeChild">changeChildButton</button>
 </div>
</template>

<script>
import Child from "./Child.vue";
export default {
 name: "father",
 data() {
 return {
 fatherText: "i'm fathertext"
 };
 },
 components: {
 Child
 },
 methods: {
 changeChild() {
 this.fatherText = "father change the text";
 }
 }
};
</script>

子組件

<template>
 <div>
 <p class="child" @click="change">{{fatherText}}</p>//正常使用fatherText的值,并添加一個修改值 的方法
 </div>
</template>
<script>
export default {
 name: "child",
 model: {//添加了model方法,用于接收v-model傳遞的參數(shù)
 prop: "fatherText", //父組件中變量的傳遞
 event: "changeChild" //事件傳遞
 },
 props: {
 fatherText: {//正常使用props接收fatherText的值
 type: String
 }
 },
 data() {
 return {
 
 };
 },
 methods: {
 change(){
  this.fatherText = 'son change the text'
 }
 }
};
</script>

在這里,報了一個錯誤,這是因為數(shù)據(jù)流是單向的,但是我們在這里,子組件不應(yīng)該直接修改props里的值。

 

這里不能直接修改,所以我們需要迂回著修改,在子組件中定義一個自己的變量,再將props的值賦值到自己的變量,修改自己的變量是可以的。

子組件 - 修改props中的值

<template>
 <div>
 <p class="child" @click="change">{{childText}}</p>
 </div>
</template>
<script>
export default {
 name: "child",
 model: {
 prop: "fatherText", //父組件中變量的傳遞
 event: "changeChild" //事件傳遞
 },
 props: {
 fatherText: {
 type: String
 }
 },
 data() {
 return {
 childText: this.fatherText //定義自己的變量childText
 };
 },
 methods: {
 change() {
 this.childText = "son change the test";//修改自己的變量
 }
 }
};

兩個組件間更新

完成了上述代碼,你會發(fā)現(xiàn)兩個組件都改變的內(nèi)容,但是只更新了自身組件的內(nèi)容,如何使兩個組件進行同步更新呢?

這里需要使用我的Wath方法,來進行監(jiān)聽傳遞組件的變量

<template>
 <div>
 <p class="child" @click="changeChild">{{childText}}</p>
 </div>
</template>
<script>
export default {
 name: "child",
 model: {
 prop: "fatherText", //父組件中變量的傳遞
 event: "changeChild" //事件傳遞
 },
 props: {
 fatherText: {
 type: String
 }
 },
 data() {
 return {
 childText: this.fatherText
 };
 },
 methods: {
 changeChild() {
 this.childText = "son change the test";
 }
 },
 watch: {
 fatherText(newtext) {//使用父組件中變量名為函數(shù)名,監(jiān)聽fatherText的變化,如果變化,則改變子組件中的值
 this.childText = newtext;
 },
 childText(newtext) {//監(jiān)聽子組件中childText變化,如果變化,則通知父組件,進行更新
 this.$emit("changeChild", newtext);
 }
 }
};

總結(jié)

以上所述是小編給大家介紹的vue中使用v-model完成組件間的通信希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • Vue實現(xiàn)移動端拖拽交換位置

    Vue實現(xiàn)移動端拖拽交換位置

    這篇文章主要為大家詳細介紹了Vue實現(xiàn)移動端拖拽交換位置,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • vue項目如何讀取本地json文件數(shù)據(jù)實例

    vue項目如何讀取本地json文件數(shù)據(jù)實例

    很多時候我們需要從本地讀取JSON文件里面的內(nèi)容,這篇文章主要給大家介紹了關(guān)于vue項目如何讀取本地json文件數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • Vue?dialog模態(tài)框的封裝方法

    Vue?dialog模態(tài)框的封裝方法

    這篇文章主要為大家詳細介紹了Vue?dialog模態(tài)框的封裝方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 優(yōu)雅的處理vue項目異常實戰(zhàn)記錄

    優(yōu)雅的處理vue項目異常實戰(zhàn)記錄

    這篇文章主要給大家介紹了關(guān)于如何優(yōu)雅的處理vue項目異常的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習或者使用vue具有一定的參考學(xué)習價值,需要的朋友們下面來一起學(xué)習學(xué)習吧
    2019-06-06
  • Vscode如何創(chuàng)建vue項目

    Vscode如何創(chuàng)建vue項目

    這篇文章主要介紹了Vscode如何創(chuàng)建vue項目問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • 使用Vue進行數(shù)據(jù)可視化實踐分享

    使用Vue進行數(shù)據(jù)可視化實踐分享

    在當今的數(shù)據(jù)驅(qū)動時代,數(shù)據(jù)可視化變得越來越重要,它能夠幫助我們更直觀地理解數(shù)據(jù),從而做出更好的決策,在這篇博客中,我們將探索如何使用 Vue 和一些常見的圖表庫(如 Chart.js)來制作漂亮的數(shù)據(jù)可視化效果,需要的朋友可以參考下
    2024-10-10
  • vue實現(xiàn)物流時間軸效果

    vue實現(xiàn)物流時間軸效果

    這篇文章主要為大家詳細介紹了vue實現(xiàn)物流時間軸效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • vue等框架對Tabs、Moda等設(shè)置固定高度后沒有滾動條問題

    vue等框架對Tabs、Moda等設(shè)置固定高度后沒有滾動條問題

    這篇文章主要介紹了vue等框架對Tabs、Moda等設(shè)置固定高度后沒有滾動條問題,解決方法很簡單,只需要一行簡短代碼就可以解決,下面小編給大家詳細講解,需要的朋友可以參考下
    2023-05-05
  • vue使用input封裝上傳文件圖片全局組件的示例代碼

    vue使用input封裝上傳文件圖片全局組件的示例代碼

    實際開發(fā)過程中,我們經(jīng)常遇見需要上傳文件圖片功能,可以封裝一個全局組件來調(diào)用,這篇文章給大家介紹vue使用input封裝上傳文件圖片全局組件,感興趣的朋友跟隨小編一起看看吧
    2023-11-11
  • vue拖拽添加的簡單實現(xiàn)

    vue拖拽添加的簡單實現(xiàn)

    本文主要介紹了vue拖拽添加的簡單實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12

最新評論

民县| 古浪县| 江城| 淮阳县| 余姚市| 义乌市| 和林格尔县| 广丰县| 贡觉县| 新余市| 福清市| 黔西县| 徐汇区| 河津市| 梓潼县| 农安县| 平舆县| 澄城县| 社会| 烟台市| 宾阳县| 黑龙江省| 延安市| 漾濞| 泗洪县| 徐闻县| 屏边| 乡宁县| 阜新市| 海城市| 清徐县| 基隆市| 宁河县| 格尔木市| 荔浦县| 邵阳市| 淮南市| 安平县| 镇远县| 宁海县| 陇川县|