鍍金池/ 問答/HTML5  HTML/ vue兄弟傳值的時候不需要父組件可以嗎? 只是要兩個兄弟組件

vue兄弟傳值的時候不需要父組件可以嗎? 只是要兩個兄弟組件

vue兄弟傳值的時候不需要父組件可以嗎? 只是要兩個兄弟組件

首先我新建了一個js文件eventBus.js
在里面寫了

import Vue from "Vue"
export default new Vue;

one組件

     <div class="a1">
        <button @click="start">點擊開始傳遞</button>
    </div>

     import bus from "../assets/eventBus";
     
    data(){
        return{
            acc:"傳遞數(shù)據(jù)2"
        }
    },
   start(){
            const a1=this.mydata;
            let a2=this.acc;
            bus.$emit("userDefinedEvent",[a1,a2]);
        }

two組件

    <div class="a1">
        <span>參數(shù):<br/>{{aaaaaaaaaaaaaaaaa}}</span>
    </div>

    import bus from "../assets/eventBus";

     return{
            aaaaaaaaaaaaaaaaa:"默認值"
        }

    mounted(){
        const _this=this;
        bus.$on("userDefinedEvent",function(msg){
            _this.aaaaaaaaaaaaaaaaa=msg;
        })
    },

在three父組件中

  <div class="home">
        <one></one>
        <two></two>
   </div>
   
import one from "@/components/one";
import two from "@/components/two";

 components:{
        one,
        two
    }

clipboard.png

clipboard.png

這樣可以實現(xiàn)兩個兄弟組件的通信,但是我現(xiàn)在不想要父組件,只是兩個組件的數(shù)據(jù)交互,怎么才可以呢?
因為都在父組件中導入了,我現(xiàn)在不需要再父組件中導入,只是兩個兄弟組件的通信,怎么實現(xiàn)呢?

回答
編輯回答
失心人

不要父組件,組件肯定的要有地方放???所以是路由組件嘛,其實并沒有太懂你的意思。


傳統(tǒng)的eventBus存在的一個主要問題是,兩個組件必須同時存在(或者在事件觸發(fā)和接收的時刻必須同時存在),如果不想上vuex的話你可以參考下這個:vue數(shù)據(jù)傳遞--我有特殊的實現(xiàn)技巧

2018年1月12日 07:18
編輯回答
殘淚

使用一個中間件,可以使用vuex,也可以使用一個vue實例,一個監(jiān)聽,一個觸發(fā)

2017年3月4日 13:12