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

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

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

前言

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

1.vuex 傳遞。

會將信息公有化。

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

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

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

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

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

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

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

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

一,vuex 傳遞數(shù)據

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ù)據

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ù)據

1.父組件 C.vue

<template>
 <div class="c">
  <h3>事件鏈傳遞數(shù)據</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 兄弟組件的信息傳遞的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

相關文章

  • 運行npm?run?dev報錯的原因及解決

    運行npm?run?dev報錯的原因及解決

    剛剛創(chuàng)建好vue項目的時候,運行 npm run dev 會報錯,下面這篇文章主要給大家介紹了關于運行npm?run?dev報錯的原因及解決方法,需要的朋友可以參考下
    2022-10-10
  • vue通過指令(directives)實現(xiàn)點擊空白處收起下拉框

    vue通過指令(directives)實現(xiàn)點擊空白處收起下拉框

    這篇文章主要介紹了vue通過指令(directives)實現(xiàn)點擊空白處收起下拉框,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • vue2?利用echarts?單獨繪制省份的步驟

    vue2?利用echarts?單獨繪制省份的步驟

    這篇文章主要介紹了vue2?利用echarts?單獨繪制省份,首先引入所需要的第三方模塊,通過示例代碼給大家介紹的非常詳細,文章末尾給大家補充介紹了vue2.x結合echarts2實現(xiàn)顯示具體省份熱力圖的問題,需要的朋友可以參考下
    2022-01-01
  • 分分鐘學會vue中vuex的應用(入門教程)

    分分鐘學會vue中vuex的應用(入門教程)

    本篇文章主要介紹了vue中vuex的應用(入門教程),詳細的介紹了vuex.js和應用方法,有興趣的可以了解一下
    2017-09-09
  • django簡單的前后端分離的數(shù)據傳輸實例 axios

    django簡單的前后端分離的數(shù)據傳輸實例 axios

    這篇文章主要介紹了django簡單的前后端分離的數(shù)據傳輸實例 axios,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Vue項目啟動報錯解決方法大全

    Vue項目啟動報錯解決方法大全

    這篇文章主要給大家介紹了關于Vue項目啟動報錯解決方法的相關資料,文中通過圖文將解決的過程介紹的非常詳細,對大家學習或者使用vue具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • Vue3實現(xiàn)自定義指令攔截點擊事件的示例代碼

    Vue3實現(xiàn)自定義指令攔截點擊事件的示例代碼

    某些應用場景會給點擊事件添加權限,不存在權限就攔截點擊事件,有權限就繼續(xù)正常觸發(fā)點擊事件。這樣的效果是如何實現(xiàn)的呢,本文就來和大家詳細講講
    2023-02-02
  • Vue的data、computed、watch源碼淺談

    Vue的data、computed、watch源碼淺談

    這篇文章主要介紹了Vue的data、computed、watch源碼淺談,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • Vue+Element+Springboot圖片上傳的實現(xiàn)示例

    Vue+Element+Springboot圖片上傳的實現(xiàn)示例

    最近在學習前段后分離,本文介紹了Vue+Element+Springboot圖片上傳的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2021-11-11
  • Vue infinite update loop的問題解決

    Vue infinite update loop的問題解決

    這篇文章主要介紹了Vue "...infinite update loop..."的問題解決,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04

最新評論