欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue 自定義組件 v-model雙向綁定、 父子組件同步通信的多種寫法

 更新時(shí)間:2017年11月27日 08:48:33   作者:吃個(gè)石頭  
父子組件通信,都是單項(xiàng)的,很多時(shí)候需要雙向通信。這篇文章主要介紹了vue 自定義組件 v-model雙向綁定、 父子組件同步通信,需要的朋友可以參考下

上篇文章給大家介紹了淺析Vue自定義組件的v-model,大家可以參考下。接下來(lái)通過(guò)本文給大家介紹vue 自定義組件 v-model雙向綁定、 父子組件同步通信的多種寫法,具體詳情如下所示:

父子組件通信,都是單項(xiàng)的,很多時(shí)候需要雙向通信。方法如下:

  1、父組件使用:msg.sync="aa"  子組件使用$emit('update:msg', 'msg改變后的值xxx')

  2、父組件傳值直接傳對(duì)象,子組件收到對(duì)象后可隨意改變對(duì)象的屬性,但不能改變對(duì)象本身。

  3、父組件使用: v-model

  第一種曾經(jīng)被廢除過(guò),由于維護(hù)成本的原因被刪掉,但經(jīng)過(guò)證實(shí),確實(shí)有存在的意義,又被加上。

  第一種:

父組件: 

<template>
 <div>
  <aa class="abc" :snycTest.sync="test" ></aa>
   {{'外面的值:' + test}}
  <button @click="fn">
   外面改變里面
  </button>  
 </div>
</template>
<script>
import aa from './test.vue'
 export default {
  data () {
   return {
    test: ''
   }
  },
  methods: {
   fn () {
    this.test += 1
   }
  },
  components:{
   aa
  }
 }
</script>

子組件:

<template>
 <div>
  <ul>
   <li>{{'里面的值:'+ snycTest}}</li>
   <button @click="fn2">里面改變外面</button>
  </ul>
 </div>
</template>
<script>
 export default {
  props: {
   snycTest: ''
  },
  methods: {
   fn2 () {
    this.$emit('update:snycTest', this.snycTest+1) //這兒是關(guān)鍵 update:snycTest 自定義事件會(huì)告訴父組件將父組件的 test值改為this.snycTest+1,并傳回給子組件。
} } } </script>

v-model寫法一:

父組件:

<template>
 <div>
  <aa class="abc" v-model="test" ></aa> // 組件中使用v-model
   {{'外面的值:' + test}} // 這兒試驗(yàn)test與內(nèi)部msg值為雙向綁定關(guān)系
  <button @click="fn">
   外面改變里面
  </button>
  
 </div>
</template>
<script>
import aa from './test.vue'
 export default {
  data () {
   return {
    test: ''
   }
  },
  methods: {
   fn () {
    this.test += 1 
   }
  },
  components:{
   aa
  }
 }
</script>

子組件寫法一:

<template>
 <div>
  <ul>
   <li>{{'里面的值:'+ msg}}</li>
   <button @click="fn2">里面改變外面</button>
  </ul>
 </div>
</template>
<script>
 export default {
  model: {  // 使用model, 這兒2個(gè)屬性,prop屬性說(shuō),我要將msg作為該組件被使用時(shí)(此處為aa組件被父組件調(diào)用)v-model能取到的值,event說(shuō),我emit ‘cc' 的時(shí)候,參數(shù)的值就是父組件v-model收到的值。
   prop: 'msg',
   event: 'cc'
  },
  props: {
   msg: ''
  },
  methods: {
   fn2 () {
    this.$emit('cc', this.msg+2)
   }
  }
 }
</script>

v-model寫法二

  父組件 <aa class="abc" v-model='test' ></aa> 。

子組件

<template>
 <div>
  <ul>
   <li>{{'里面的值:'+ value}}</li> // 組件使用時(shí)有v-model屬性,value初始傳的‘what' 不會(huì)被渲染,而是v-model綁定的test值被渲染,這兒value會(huì)被重新賦值為v-model綁定的test的值。
   <button @click="fn2">里面改變外面</button>
  </ul>
 </div>
</template>
<script>
 export default {
  props: {
   value: { // 必須要使用value
     default: '',
    },
  },
  methods: {
   fn2 () {
    this.$emit('input', this.value+2) // 這兒必須用input 發(fā)送數(shù)據(jù),發(fā)送的數(shù)據(jù)會(huì)被父級(jí)v-model=“test”接受到,再被value=test傳回來(lái)。
   }
  }
 }

一般雙向綁定用v-model寫法一。

總結(jié)

以上所述是小編給大家介紹的vue 自定義組件 v-model雙向綁定、 父子組件同步通信的多種寫法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 詳解vue-cil和webpack中本地靜態(tài)圖片的路徑問(wèn)題解決方案

    詳解vue-cil和webpack中本地靜態(tài)圖片的路徑問(wèn)題解決方案

    這篇文章主要介紹了詳解vue-cil和webpack中本地靜態(tài)圖片的路徑問(wèn)題解決方案,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-09-09
  • vue+canvas實(shí)現(xiàn)移動(dòng)端手寫簽名

    vue+canvas實(shí)現(xiàn)移動(dòng)端手寫簽名

    這篇文章主要為大家詳細(xì)介紹了vue+canvas實(shí)現(xiàn)移動(dòng)端手寫簽名,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • vue3中使用vuedraggable實(shí)現(xiàn)拖拽el-tree數(shù)據(jù)分組功能

    vue3中使用vuedraggable實(shí)現(xiàn)拖拽el-tree數(shù)據(jù)分組功能

    這篇文章主要介紹了vue3中使用vuedraggable實(shí)現(xiàn)拖拽el-tree數(shù)據(jù)分組功能,可以實(shí)現(xiàn)單個(gè)拖拽、雙擊添加、按住ctrl鍵實(shí)現(xiàn)多個(gè)添加,或者按住shift鍵實(shí)現(xiàn)范圍添加,添加到框中的數(shù)據(jù),還能拖拽排序,需要的朋友可以參考下
    2024-02-02
  • 如何在Vue3和Vite項(xiàng)目中用SQLite數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)存儲(chǔ)

    如何在Vue3和Vite項(xiàng)目中用SQLite數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)存儲(chǔ)

    SQLite是一種嵌入式關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),是一個(gè)零配置、無(wú)服務(wù)器的、自給自足的、事務(wù)性的SQL數(shù)據(jù)庫(kù)引擎,這篇文章主要給大家介紹了關(guān)于如何在Vue3和Vite項(xiàng)目中用SQLite數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)存儲(chǔ)的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • 詳解在vue使用weixin-js-sdk常見(jiàn)使用方法

    詳解在vue使用weixin-js-sdk常見(jiàn)使用方法

    這篇文章主要介紹了 詳解在vue使用weixin-js-sdk常見(jiàn)使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Vue+Echarts報(bào)錯(cuò)Cannot?set?properties?of?undefined?(setting?‘plate‘)

    Vue+Echarts報(bào)錯(cuò)Cannot?set?properties?of?undefined?(settin

    這篇文章主要介紹了Vue+Echarts報(bào)錯(cuò)Cannot?set?properties?of?undefined?(setting?‘plate‘)的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Vue2?中自定義圖片懶加載指令?v-lazy實(shí)例詳解

    Vue2?中自定義圖片懶加載指令?v-lazy實(shí)例詳解

    這篇文章主要為大家介紹了Vue2?中自定義圖片懶加載指令?v-lazy實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • vue.js的簡(jiǎn)單自動(dòng)求和計(jì)算實(shí)例

    vue.js的簡(jiǎn)單自動(dòng)求和計(jì)算實(shí)例

    今天小編就為大家分享一篇vue.js的簡(jiǎn)單自動(dòng)求和計(jì)算實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Vue項(xiàng)目打包部署的實(shí)戰(zhàn)過(guò)程記錄

    Vue項(xiàng)目打包部署的實(shí)戰(zhàn)過(guò)程記錄

    我們使用nginx部署Vue項(xiàng)目,實(shí)質(zhì)上就是將Vue項(xiàng)目打包后的內(nèi)容同步到nginx指向的文件夾,下面這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目打包部署的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • vue如何動(dòng)態(tài)修改$router參數(shù)

    vue如何動(dòng)態(tài)修改$router參數(shù)

    這篇文章主要介紹了vue如何動(dòng)態(tài)修改$router參數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評(píng)論