vue使用bus传值 第一次没数据 第二次开始重复触发的问题

utils/bus.js

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

import bus from '@/utils/bus'
Vue.prototype.$bus = bus

A页面

export default {
  data () {
    return {
      helloData:'hello'
    };
  },
   methods: {
    btnClick () {
       this.$nextTick(function () {  //加个nextTick解决第一次没数据
        this.$bus.$emit('test', this.helloData)
       })
    },
  }

B页面

  mounted () {
    this.$bus.$on('test', val => {
      console.log("接收到bus数据:",val);
      this.cdata = val
    })
  },
  destroyed () {
    this.$bus.$off() //在页面销毁生命周期加上bus.$off() 解决重复触发的问题
  }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容