国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 15:35:13
字體:
供稿:網(wǎng)友

前言

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

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>            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 皮山县| 蚌埠市| 沛县| 吴旗县| 柳江县| 阳信县| 祁东县| 新绛县| 依安县| 安康市| 桑日县| 扬中市| 新巴尔虎右旗| 富顺县| 谢通门县| 开鲁县| 托里县| 麦盖提县| 若羌县| 林甸县| 襄垣县| 葫芦岛市| 葵青区| 高要市| 祁连县| 兰西县| 渝中区| 延长县| 平塘县| 伊通| 安康市| 上蔡县| 巴东县| 辉县市| 宜丰县| 沧源| 开江县| 鄂伦春自治旗| 甘谷县| 曲周县| 九龙县|