vue Bus事件用法與bug



  

  var vm = new Vue({
  el: '#app',
  data: {
    // 空的實例放到根組件下,所有的子組件都能調用
    Bus: new Vue()
  },
  template: '<App/>',
  components: { App },
  })


this
.$root.Bus.$emit("exportschre",this.count); //發送事件
this.$root.Bus.$on('exportschre', value => {})//事件監聽

在監聽的時候發現會觸發多次,解決辦法就是在組件銷毀的時候也銷毀該事件,但是在router-link路由切換之后就會無法監聽,所以有些情況存在bug,具體情況具體分析

beforeDestroy() {
  this.$root.Bus.$off("exportschre");
}

router-link路由切換之后就會無法監聽解決辦法:就是在監聽之前先銷毀改事件,然后就只觸發一次

this.$root.Bus.$off("exportschre");
this.$root.Bus.$on('exportschre', value => {


})

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM