vue组件中传值EventBus的使用及注意事项说明

 更新时间:2020年11月16日 09:09:19   作者:Cassie、  
这篇文章主要介绍了vue组件中传值EventBus的使用及注意事项说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

主要想说下非父子组件之间的通信。

项目场景:

在app.vue里写了一个公共的顶部导航navbar,然后右侧有个分享按钮,而这个分享按钮只有在特定的页面才展示,项目里是在lottery.vue页面,然后想实现app.vue里点击分享按钮,触发lottery.vue里的分享方法。

解决:使用eventBus

1、创建一个event-bus.js

import Vue from 'vue'

export const EventBus = new Vue()

2、在app.vue引入eventbus,点击分享按钮时触发方法

import { EventBus } from '@/tools/event-bus'
 
onClickRight () {
  EventBus.$emit('handleLotteryShare')
}

3、在lottery.vue引入eventBus,在mounted里监听

import { EventBus } from '@/tools/event-bus'
 
mounted () {
  EventBus.$on('handleLotteryShare', () => {
   this.doShare()
  })
 },

4、到此解决了。但是,但是,出bug了,每多点击一次,分享的弹窗的蒙层颜色就更深一层。然后一头雾水,以为是原生app里api的bug,跑去问他们,结果尴尬了,并不是,而是调了多次分享接口。

然后就发现应该跟eventBus有关,上网搜索了下,原来eventBus用完要记得解绑。加上以下代码解决了。

created () {
  // 解绑bus
  EventBus.$off('handleLotteryShare')
}

使用eventBus注意事项:要记得解绑啊!EventBus.$off('handleLotteryShare')。

补充知识:vue前端兄弟组件或任意两个组件之间进行传值可以使用eventbus

具体使用流程如下:

1、定义一个js文件,引入Vue

2、在需要使用eventbus的组件中引入步骤1创建的js文件

bus.$emit进行传值

3、在另一个组件中使用bus.$on进行接收

其中,msg即为步骤2中emit携带的参数“123”

以上这篇vue组件中传值EventBus的使用及注意事项说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解Vue2.0配置mint-ui踩过的那些坑

    详解Vue2.0配置mint-ui踩过的那些坑

    这篇文章主要介绍了详解Vue2.0配置mint-ui踩过的那些坑,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • vue结合leaflet实现鹰眼图

    vue结合leaflet实现鹰眼图

    本文主要介绍了vue结合leaflet实现鹰眼图,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • 动态加载权限管理模块中的Vue组件

    动态加载权限管理模块中的Vue组件

    本篇文章给大家详细讲解了如何在权限管理模块中动态的加载VUE组件的过程,有这方面需求的朋友跟着学习下吧。
    2018-01-01
  • 解决vue项目router切换太慢问题

    解决vue项目router切换太慢问题

    这篇文章主要介绍了解决vue项目router切换太慢问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • Vue之插槽的内容渲染问题及解决过程

    Vue之插槽的内容渲染问题及解决过程

    本文将探讨这些常见问题的原因,并提供相应的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • vue项目中请求数据特别多导致页面卡死的解决

    vue项目中请求数据特别多导致页面卡死的解决

    这篇文章主要介绍了vue项目中请求数据特别多导致页面卡死的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Vue解析剪切板图片并实现发送功能

    Vue解析剪切板图片并实现发送功能

    这篇文章主要介绍了Vue解析剪切板图片并实现发送功能,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • 关于console.log打印结果是 [object Object]的解决

    关于console.log打印结果是 [object Object]的解决

    这篇文章主要介绍了关于console.log打印结果是 [object Object]的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • Vue Router路由守卫超详细介绍

    Vue Router路由守卫超详细介绍

    路由守卫,简单理解来说就是,当用户要进行一些操作时,我需要用户的一些信息或数据或行为,我判断过后,才会同意用户进行操作,说到这里,我想大家心里都或多或少有点理解了吧
    2023-01-01
  • vue3如何用pinia替代vuex

    vue3如何用pinia替代vuex

    这篇文章主要介绍了vue3如何使用pinia替代vuex问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03

最新评论