zoukankan      html  css  js  c++  java
  • eventBus踩坑

    前言:在vue中组件传值有很多方法,在不是特别大的项目中不需要非得使用Vuex,父子之间可用用props传值,非父子组件可以使用eventBus,使用过程中遇到一个小坑,记录一下。

    eventBus就是导出了一个Vvue的实例

    eventBus.js

    import Vue from 'vue'
    export default new Vue()

    在search.vue页面中传递参数

    eventBus.$emit('searchValue', this.searchValueObj);

    在table.vue页面中接收参数

    created() {
        eventBus.$on('searchValue', this.getParams)
      },
    methods: {
        getParams (value) {
          this.searchValueObj = merge({}, value)
          console.log(this.searchValueObj)
          this.getList()
        },
    }

    但是。。。我在切换页面再切回来的时候第二次执行了两次,接口也掉了两次。

    然后我在vue的issue中发现了尤大神提出的解决方案

    img

    就是说,这个$on事件是不会自动清楚销毁的,需要我们手动来销毁

    beforeDestroy() {
      eventBus.$off('searchValue', this.getParams)
    },

    在这记录一下,希望遇到和我一样坑的人少走些弯路。附上issue的地址  https://github.com/vuejs/vue/issues/3399

  • 相关阅读:
    面试问题记录
    面试问题记录
    面试问题记录
    JavaScript => ?
    Jsr303数据校验
    在浏览器上开发GO和Vue!(基于code-server)
    IdentityServer4 4.0.0
    9/13-9/18
    9/6-9/10
    8/30-9/3
  • 原文地址:https://www.cnblogs.com/PrayLs/p/12811697.html
Copyright © 2011-2022 走看看