麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

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

2019-11-19 10:56:15
字體:
來源:轉載
供稿:網友

前言

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

1.vuex 傳遞。

會將信息公有化。

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

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

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

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

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

一個兄弟組件通過事件將信息傳給兄弟組件共有的父組件。

父組件再將信息通過屬性傳遞給另一個兄弟組件。

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

一,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 還沒說話',  msgFromB:'B 還沒說話' }, 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 說:{{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 說:{{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ù)據(jù)

1.建立Vue 實例模塊 bus.js

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

2.子組件 A.vue

<template> <div class="a">  <h3>A 模塊</h3>  <p>B 說:{{msgFromB}}</p>  <button @click="aSay">A 把自己的信息傳給B</button> </div></template><script> import Bus from '../util/Bus' export default {  data () {   return {    msg:'我是A',    msgFromB:'B 還沒說話',   }  },  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 說:{{msgFromA}}</p>  <button @click="bSay">B 把自己的信息傳給A</button> </div></template><script> import Bus from '../util/Bus' export default {  data () {   return {    msg:'我是B',    msgFromA:'A 還沒說話'   }  },  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 還沒說話',    msgFromB:'B 還沒說話'   }  },  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 說:{{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 說:{{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>

總結

以上所述是小編給大家介紹的vue 兄弟組件的信息傳遞的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产久草视频在线 | 欧美在线观看黄色 | 亚洲欧美在线视频免费 | 久久久一区二区三区精品 | 精品一区二区久久久久久久网精 | 亚洲第一成人在线观看 | 手机黄色小视频 | 最新中文字幕日本 | 精品人人人人 | 亚洲免费看片网站 | 国产精品一| 久久国产精品久久久久久 | 伊人久久电影网 | 欧美色视频免费 | 国产精品三级a三级三级午夜 | 久久国产精品无码网站 | 成人午夜视频免费看 | 羞羞漫画无遮挡观看 | 毛片免费看电影 | 欧美精品免费一区二区三区 | 亚洲成人欧美 | 亚洲自拍第二页 | 欧美一级黄色片免费观看 | av电影在线观看网站 | 精品中文字幕在线播放 | 一级做a爰性色毛片免费1 | 毛片天天看 | 97青青 | 亚洲日韩精品欧美一区二区 | 国产一区二区三区四区五区加勒比 | av大全在线免费观看 | 日本在线播放一区二区三区 | 国产精品国产三级国产在线观看 | 奶子吧naiziba.cc免费午夜片在线观看 | 九九热在线视频免费观看 | 中文字幕在线播放视频 | 国产成年人在线观看 | 91午夜理伦私人影院 | 美女亚洲综合 | 特级黄毛片 | 欧美国产第一页 |