Vue3 移除了 EventBus,嗯。。。要不写一个?
前言
我们都知道在 Vue 中父子组件通信使用 props
、$emit
,兄弟组件或者跨组件之间可以通过 Vuex
或 EventBus
,包括 $parent
、$root
和 $refs
都是可以达到通信的目的,总之 Vue 组件之间的通信方式非常丰富。
今天的主角是EventBus
,那么先谈谈我对它的理解。
EventBus
之所以能实现全局跨组件通信首先因为它是一个全局对象,可以通过挂在 window
或 Vue.prototype
上,并且能通过触发事件传参来实现数据的传递。
在小型项目(二三十个页面)中使用起来还是比较友好的,比起 Vuex
要来的简单粗暴一点。因为 Vuex
需要建立 mutations
、actions
,某些逻辑交互甚至需要借助 computed
+ watch
来实现,这在小项目中显得比较臃肿。
在大型项目(几百个页面)中使用 EventBus
不是不行,就是这里面水很深,很难把握的住……
EventBus
的缺点就是 Vuex
的优点,缺乏 状态管理 。试想一下我们在看一段代码时,看到 $emit('someEvent')
或 $on('someEvent')
后想要知道它分别在哪里被监听,在哪里被触发,然后全局一搜竟然有几十处,这……
Vue3 移除了 EventBus,嗯。。。要不写一个?相关推荐
- vue3使用vite+setup+ts写一个初级前端项目
Vue3vite+setup+ts项目总结 项目说明 项目概述 本项目纯粹是为了学习和巩固刚学的vue3组合式api和语法糖,再加上网上流行vite+ts+vue,所以便有了这个历时四天的vue3前端 ...
- 【vite+vue3.0】基于vite写一个将md文件渲染为js文件的插件
基于vite写一个将md文件渲染为js文件的插件 前言 尤大是这么描述 Vite 的: 「一个基于浏览器原生 ES imports 的开发服务器. 利用浏览器去解析 imports,在服务器端按需编译 ...
- 【React组件】写一个模仿蓝湖的图片查看器
前言 最近公司让写一个可以自由拖拽放大的图片查看器,我寻思这还不简单,一顿操作猛如虎,俩小时后: 事实证明,一旦涉及到 DOM 的变换操作,如果很多细节考虑不全,抓过来就写,那基本就凉了.于是我仔细分 ...
- 从零开始写一个武侠冒险游戏-3-地图生成
2019独角兽企业重金招聘Python工程师标准>>> 从零开始写一个武侠冒险游戏-3-地图生成 概述 前面两章我们设计了角色的状态, 绘制出了角色, 并且赋予角色动作, 现在是时候 ...
- 使用IntentService给自己的Android应用写一个文件下载器。
接着上一篇的http://www.cnblogs.com/zhengxt/p/3657833.html,当我们想给自己的APP写一个文件下载器时,可以用重写IntentService来实现. 使用In ...
- python写一个表白程序-用Python写一个表白神器让你脱单
原标题:用Python写一个表白神器让你脱单 来自公众号:Python编程时光 今天是什么节日,就不用小明说了吧? 有女朋友的,该准备的礼物买了吗? 没有对象的,表白的套路学会了吗? 还没有?好吧,你 ...
- python写游戏脚本-使用Python写一个小游戏
引言 最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规的项目开发流程,手把手教大家写个python小游戏,来感受下 ...
- python编程小游戏-使用Python写一个小游戏
引言 最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规的项目开发流程,手把手教大家写个python小游戏,来感受下 ...
- 硬核!手写一个优先队列
文章收录在首发公众号:bigsai 期待你的到访! 前言 事情还要从一个故事讲起: 对于上面那只可爱的小狗狗不会,本篇即为该教程,首先,我要告诉这只可爱的小狗狗,这种问题你要使用的数据结构为优先队列, ...
最新文章
- python数据结构与算法:双向链表
- 2022 年营销自动化七大趋势前瞻
- Java 集合 之 房屋出租实例
- 银行营业网点管理系统——Servlet包(CityAreaServlet )
- 关于dlg和pro的问题
- Sentinel流控规则持久化
- 在asp.net中调用process.start执行程序
- java 跨域上传_java后台图片跨域上传图片 文件
- 解析xml_Mybatis中mapper的xml解析详解
- dom4j.jar有什么作用?
- MySQL建表时Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP
- python学习--面向过程程序设计实例
- matlab编写全置信度函数,Matlab_curve_fitting_tool的用法图文结合
- CSS 改变文本选中颜色
- 朗文3000词汇表带音标_牛津3000词汇表
- 使用redis+切面完成分布式锁
- python-计算字符个数
- 线性代数学习笔记4-1:线性方程组的数学和几何意义、零空间/解空间/核
- 面试官:什么是虚拟DOM?如何实现一个虚拟DOM?
- 搭建L2TP-***