技术标签: bus总线的使用 vue bus总线的原理 bus总线 vue的bus总线 兄弟间传值
非父子组件间传递数据有很多种方式,本文从官方文档开始解析bus总线的原理
在官方文档中对bus总线的介绍是使用,但是明确指出了复杂情况推荐使用vuex实现非父子组件直接的传值,bus总线应用在简单的项目
bus总线就是一个中间组件,触发事件,触发中间组件,监听中间组件的变化
1.所有组件都可以访问
2.可以使用$emit,$on,$off
在项目过程中要满足这两点需求
1.所有组件都可访问
在vue的项目中,要所有组件都可以访问,那么一定在vue进行实例化之前就准备好,就是下图红色部分
2.可以使用$emit,$on,$off
有$emit,$on,$off的一定是vue的实例对象vc,或者vueComponent的实例对象vm
挂载到哪都可以访问?必然是原型上
vue.prototype.$bus = vue的实例对象/vueComponent的实例对象
第一种:
Vue.prototype.$bus = vueComponent的实例对象(所有的vueComponent的实例对象都是(Vue.extentd构造的)
第二种:
在生命周期创建之前 Vue.prototype.$bus = vue的实例对象
第三种:
利用插件进行挂载
安装 - npm install vue-bus
注册使用:
import VueBus from 'vue-bus';
Vue.use(VueBus)
触发事件
this.$bus.$emit('事件名', 值)
监听事件
create() {
this.$bus.$on('事件名', (值) = > {
})
}
销毁事件
this.$bus.$off('事件名')
在理解bus总线的前提,是需要理解,为什么写在vue的原型上就可以访问?可以自行思考一下,涉及了一些vue的原理
码字不易,记得点赞哦!
关于ESP8266-01使用机智云SOC方案控制IO2驱动继电器首先创建机智云账号,创建产品,添加数据点创建SOC方案,选好各项参数下载安装二次开发环境,不会的可以自行百度,教程比较详细下载链接链接: https://pan.baidu.com/s/1jUT-AGRS-hFaTr6QqVAVCA&shfl=shareset 提取码: imcu开始二次开发注意!注意...
被陈X老师压迫了那么久,那泄心中的怨气,在网上找到他上课压迫我们的翻译题及答案,,在此贴出以供兄弟姐妹共享。考研英语长难句(1) 1. That sex ratio will be favored which maximizes the number of descendants an individual will have and hence t...
互联网时代,总是会诞生很多让自己觉得特别新奇的东西,你会觉得新颖,又会觉得离你很近,但因为不知道要怎么做又离你很远。近几年知识付费特别流行,是现在的一个新趋势,现在做的人特别多,竞争越来越激烈,就现在的发展前景来看,知识付费只会越来越盛行,可以说在未来是一片好景。既然是一个新的流行趋势,肯定很多人想做知识付费,但对很多东西不了解。我们今天就来讲一下该怎么去做好知识付费。既然是知识付费,那么内容肯定是非常重要的一环。第一,当然是和优秀的内容或者ip达成合作,这一点是有优秀内容的基础第二,知识产品要
我与 markdown在我很久之前的的博客中提到 markdown 是写作中很重要的技能,因为大部分对写作有需求的用户都有着这样的需求:需要专注于写作内容,同时也需要一定的格式支持。于是市面上就出现了两极分化的写作软件:第一种是类似于记事本一类的软件,它们不支持格式,或者一个文档仅支持同样的格式,它们的格式设置就像凑数的一样;另一种是类似 Word一类的软件,它们对格式支持特别强大,强大到你需要对这一种软件进行专门的学习。在接触 markdown 之前,我的世界就像上面说的那样两极分化。有的时候仅仅是
Java是一种伟大的语言。它管理内存,传授面向对象的编程(思想),使我们更好地用它来编码。另外,它确实是一种“编写一次,到处运行“的语言。然而,Java应用程会遇到一些常见的开发者和应用者独耳熟能详的性能挑战。内存泄露Java的最大的好处之一是它能够管理内存模型。当对象不再使用时,Java会做清理工作。较旧的语言需要人工来管理内存,但开发者宁愿花时间专注于核心语言逻辑而不愿为内存分...
利用:winapi CreateFileMapping,参数设为:0*FFFFFFFF;说明它是共享内存而不是文件。例如: myMapFile=CreateFileMapping((HANDLE) (0*FFFFFFFF),NULL,PAGE_READWRITE,0,9999,"recherFile");if(myMapFile!=NULL) myMapFile=(char
运行结果截图(八方向可走)手写栈 LinkStack.h图 Maze.h#pragma warning(disable:4996)#ifndef MAZE_H_#define MAZE_H_#include<conio.h>#include <stdlib.h>#include <stdio.h>#include "LinkStack.h"typedef struct MAZE{ int size; int** data;}..
Employee 表包含所有员工,他们的经理也属于员工。每个员工都有一个 Id,此外还有一列对应员工的经理的 Id。给定 Employee 表,编写一个 SQL 查询,该查询可以获取收入超过他们经理的员工的姓名。在上面的表格中,Joe 是唯一一个收入超过他的经理的员工。
已使用.netframework,version=v4.6.1 而不是目标框架netcoreapp,version=v2.1 还原包,此包可能与项目不完全兼容NU1202: 包 System.Runtime.InteropServices.RuntimeInformation 4.0.0 与 netcoreapp2.2 (.NETCoreApp,Version=v2.2) 不兼容。 包 ...
1.在查询时给字段起别名,让别名和实体类属性名一样 <!-- 通过id查询 --> <select id="selectById" parameterType="int" resultType="com.zhiyou100.kfs.bean.Users">...
一直相信IT世界的最有魅力的,便是能够实现人机对战 人工智能,他的魅力犹如一座美丽的天空之城,那里能够充满你与机器奋斗的火药气味,这是一个没有硝烟战斗,犹如纯爷们之间的战斗——浅月若寒 朋友你会对我的ai千呼万唤始出来,亲爱的ai姑娘,请你掀起你的盖头来! 好!我来了。读者哥哥,请听小妹妹...