【问题标题】:Event handling in Vue.jsVue.js 中的事件处理
【发布时间】:2021-11-10 05:11:43
【问题描述】:

我有一种情况,即从父组件触发的事件被多个子组件监听。

e.g.
Parent Component: emit -> "orderReceived"
Child Component1( Tab1): on-> "orderReceived" -> fetch array1 from server
Child Component2( Tab2): on-> "orderReceived" -> fetch array2 from server

当这两个选项卡都打开时,一切正常。 我正在努力的是,销毁 Tab1 上的事件侦听器,但仍然能够在 Tab 2 上侦听。(当 tab1 关闭时)。 现在如果 Tab1 的监听器被销毁,它也会禁用 Tab 2 上的监听器。

提前致谢。

【问题讨论】:

    标签: javascript vuejs2 event-handling vue-component event-listener


    【解决方案1】:

    事件必须从不同时监听的组件中删除,您需要使用$off,仅删除选定的事件,而不是仅从特定组件中删除所有事件,而不是同时删除

    const ChildComponent1 = {
      methods:{
        orderReceived(){
          //orderReceived event emit
        }
      },
      created(){
        EventBus.$on('YOURCONTENT', this.orderReceived)
      },
      beforeDestroy(){
        EventBus.$off('YOURCONTENT', this.orderReceived)
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-31
      • 2016-02-17
      • 2017-10-23
      • 1970-01-01
      • 2018-06-06
      • 2017-11-16
      • 2017-10-12
      相关资源
      最近更新 更多