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

vue 兄弟組件的信息傳遞的方法實(shí)例詳解

 更新時(shí)間:2019年08月30日 11:40:19   作者:buglas  
這篇文章主要介紹了vue 兄弟組件的信息傳遞的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

前言

兄弟組件的信息傳遞有三種方式:

1.vuex 傳遞。

會(huì)將信息公有化。

此方法可在所有組件間傳遞數(shù)據(jù)。

2.建立Vue 實(shí)例模塊傳遞數(shù)據(jù)。

Vue 實(shí)例模塊會(huì)成為共用的事件觸發(fā)器。

其通過(guò)事件傳遞的信息不回被公有化。

3.建立事件鏈傳遞數(shù)據(jù)。

一個(gè)兄弟組件通過(guò)事件將信息傳給兄弟組件共有的父組件。

父組件再將信息通過(guò)屬性傳遞給另一個(gè)兄弟組件。

若兄弟組件不是親兄弟,而是堂兄弟,也就是他們有一個(gè)共同的爺爺,那么此方法會(huì)使程序變得繁瑣。

一,vuex 傳遞數(shù)據(jù)

1.安裝vuex

npm install vuex --save

2.store.js

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export const store=new Vuex.Store({
 state:{
  msgFromA:'A 還沒(méi)說(shuō)話',
  msgFromB:'B 還沒(méi)說(shuō)話'
 },
 getters:{
 },
 mutations:{
  msgAChange(state,msg){
   state.msgFromA=msg;
  },
  msgBChange(state,msg){
   state.msgFromB=msg;
  },
 }
})

3.子組件A.vue

<template>
 <div class="a">
  <h3>A 模塊</h3>
  <p>B 說(shuō):{{msgFromB}}</p>
  <button @click="aSay">A 把自己的信息傳給B</button>
 </div>
</template>

<script>
 export default {
  data () {
   return {
    msg:'我是A',
   }
  },
  methods:{
   aSay(){
    this.$store.commit('msgAChange', this.msg);
   }
  },
  computed: {
   msgFromB() {
    return this.$store.state.msgFromB;
   }
  }
 }
</script>

4.子組件B.vue

<template>
 <div class="b">
  <h3>B 模塊</h3>
  <p>A 說(shuō):{{msgFromA}}</p>
  <button @click="bSay">B 把自己的信息傳給A</button>
 </div>
</template>

<script>
 export default {
  data () {
   return {
    msg:'我是B'
   }
  },
  methods:{
   bSay(){
    this.$store.commit('msgBChange', this.msg);
   }
  },
  computed: {
   msgFromA() {
    return this.$store.state.msgFromA;
   }
  }
 }
</script>

二,Vue 實(shí)例模塊傳遞數(shù)據(jù)

1.建立Vue 實(shí)例模塊 bus.js

import Vue from 'vue'
export default new Vue();

2.子組件 A.vue

<template>
 <div class="a">
  <h3>A 模塊</h3>
  <p>B 說(shuō):{{msgFromB}}</p>
  <button @click="aSay">A 把自己的信息傳給B</button>
 </div>
</template>

<script>
 import Bus from '../util/Bus'
 export default {
  data () {
   return {
    msg:'我是A',
    msgFromB:'B 還沒(méi)說(shuō)話',
   }
  },
  created(){
   let _this=this;
   Bus.$on('msgBChange',function(dt){
    _this.msgFromB=dt;
   })
  },
  methods:{
   aSay(){
    Bus.$emit('msgAChange',this.msg);
   }
  }
 }
</script>

3.子組件 B.vue

<template>
 <div class="b">
  <h3>B 模塊</h3>
  <p>A 說(shuō):{{msgFromA}}</p>
  <button @click="bSay">B 把自己的信息傳給A</button>
 </div>
</template>

<script>
 import Bus from '../util/Bus'
 export default {
  data () {
   return {
    msg:'我是B',
    msgFromA:'A 還沒(méi)說(shuō)話'
   }
  },
  created(){
   let _this=this;
   Bus.$on('msgAChange',function(dt){
    _this.msgFromA=dt;
   })
  },
  methods:{
   bSay(){
    Bus.$emit('msgBChange',this.msg);
   }
  }
 }
</script>

三,事件鏈傳遞數(shù)據(jù)

1.父組件 C.vue

<template>
 <div class="c">
  <h3>事件鏈傳遞數(shù)據(jù)</h3>
  <appA :msg-from-b="msgFromB" v-on:msg-a-change="aSay"></appA>
  <appB :msg-from-a="msgFromA" v-on:msg-b-change="bSay"></appB>
 </div>
</template>

<script>
 import A from '../a3/A'
 import B from '../b3/B'
 export default {
  data () {
   return {
    msgFromA:'A 還沒(méi)說(shuō)話',
    msgFromB:'B 還沒(méi)說(shuō)話'
   }
  },
  methods:{
   aSay(msg){
    this.msgFromA=msg;
   },
   bSay(msg){
    this.msgFromB=msg;
   },
  },
  components:{
   appA:A,
   appB:B,
  }
 }
</script>

2.子組件 A.vue

<template>
 <div class="a">
  <h3>A 模塊</h3>
  <p>B 說(shuō):{{msgFromB}}</p>
  <button @click="aSay">A 把自己的信息傳給B</button>
 </div>
</template>

<script>
 export default {
  data () {
   return {
    msg:'我是A',
   }
  },
  methods:{
   aSay(){
    this.$emit('msg-a-change', this.msg)
   }
  },
  props: ['msgFromB'],
 }
</script>

3.子組件 B.vue

<template>
 <div class="b">
  <h3>B 模塊</h3>
  <p>A 說(shuō):{{msgFromA}}</p>
  <button @click="bSay">B 把自己的信息傳給A</button>
 </div>
</template>

<script>
 import Bus from '../util/Bus'
 export default {
  data () {
   return {
    msg:'我是B',
   }
  },
  methods:{
   bSay(){
    this.$emit('msg-b-change', this.msg)
   }
  },
  props: ['msgFromA'],
 }
</script>

總結(jié)

以上所述是小編給大家介紹的vue 兄弟組件的信息傳遞的方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

最新評(píng)論

临清市| 剑川县| 克东县| 塘沽区| 武宣县| 蒙自县| 古丈县| 文昌市| 怀柔区| 格尔木市| 华坪县| 清新县| 原阳县| 吐鲁番市| 荆州市| 富阳市| 鞍山市| 怀远县| 兖州市| 新竹市| 大名县| 喀喇沁旗| 林西县| 武邑县| 招远市| 涞源县| 松阳县| 林口县| 错那县| 綦江县| 兴安县| 长子县| 璧山县| 岫岩| 武宣县| 林西县| 宜丰县| 黔江区| 乡宁县| 卢湾区| 汕尾市|