javascript - 使用 event bus 如何對實例屬性運算?
天蓬老师
天蓬老师 2017-05-19 10:28:29
0
2
579

使用了一個event bus進行兄弟元件進行通信,

這是其中一個元件:qdb_list

clickChange:function(obj){
      Bus.$emit('change',obj);
      this.$router.push({path:'/qdb_change'});
    }

觸發click事件後會跳到qdb_change元件

這是它的兄弟元件:qdb_change

#
import Bus from '../bus.js'
export default {
    name:'qdb_change',
    data:function(){
      return {
      newname:'',
      newstatus:'',
      newinstruction:'',
      text:'123456'
      }
    },
    created:function(){
      Bus.$on('change',obj=>{
      console.log(obj);
      this.newname=obj.qdb_name;   
      this.newstatus = obj.status;
      this.newinstruction = obj.instruction;
      });
    }
}

在這裡對屬性進行的賦值操作全部都無效,得到的依然是空白值,該怎樣才能使其生效?

還有就是每次第一次點擊qdb_list裡面的跳轉時,都不會有console.log(obj)出來,是不是$on並沒有監聽到事件?

但是第二次點擊時它就會出現兩個console.log(obj),是不是說Bus.$emit('change',obj)這個事件的觸發次數會不斷累積?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回覆(2)
仅有的幸福

你這兩個元件是不同的沒有同時展示,也就是一個創建了,另一個就被銷毀了,這種情況就不應該使用event bus,而應該使用vuex,實現組件的資料共享,qdb_list頁面emit的時候,qdb_change頁面還沒建立created也沒執行,怎麼能監聽到觸發的emit,一般觀察者模式是先on再emit

PHPzhong

這不是兩個路由嗎.怎麼是兄弟組件

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板