IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue的中央事件总线,实现任何组件之间的相互通信 -> 正文阅读

[JavaScript知识库]vue的中央事件总线,实现任何组件之间的相互通信

在main.js文件中进行挂载

注: 中央事件总线实现方法也可以这么实现

  1. 直接创建一个新的js文件,在文件中创建并导出一个vue实例。
  2. 在需要通信的两个组件中分别引入这个bus.js
  3. 传递数据的组件里通过vue实例方法$emit发送事件名称和需要传递的数据。(发送数据组件)
  4. 被传递数据的组件内通过vue实例方法$on监听到事件和接受到数据。

这种方法在Vue组件之间的通信方式的总结这篇文章中阐述过,同时里面还有其他几种通信方式。

这篇文章主要说vue的中央事件总线,并且选择的方式是直接创建一个vue实例,并将其挂载到vue的原型上(Vue.prototype),这样我们就能在任意一个vue组件中进行方法调用。这样实现起来我认为更为简便直接。 在main.js文件中代码如下:

// main.js
Vue.prototype.$bus = new Vue();

在对应的组件中进行事件的发起和监听

// 发起事件的组件 this.$bus.$on
// 在对应代码处发起事件
// fn   为发起的事件名称,会被$bus.$on监听,可以自己定义名称(发起与监听的名称要一致)
// data 为需要传递的数据,能够在$bus.$on处获取
const data = 'abc'
this.$bus.$emit('fn', data)
// 响应事件的组件 this.$bus.$emit
// 先在mounted中进行注册监听
//(注意:注册监听的组件中,在组件销毁前记得通过$off注销对中央事件中线的监听)
// fn  为监听的事件名称,会由$emit发起,可以自己定义名称(发起与监听的名称要一致)
// foo 为响应事件的具体方法
methods: {
	foo(val) {
		console.log(val) // abc
	}
}
mounted() {
	this.$bus.$on('fn', this.foo)
}
beforeDestroy() {
  	this.$bus.$off("fn");
},

注意事项(中央事件总线不生效)

由于中央事件总线常用于跨级组件,有时朋友们会遇到事件发起了,但监听事件无反应的情况。
引起这个情况的可能原因是:发起事件的组件在发起事件时,监听事件的组件还未挂载或还未进行事件的监听。(简单来说就是,监听事件(on)要在发起事件(emit)之前

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-09-25 23:09:09  更:2022-09-25 23:10:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 9:46:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码