版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第Vue全局事件总线和订阅与发布使用案例分析讲解目录一、全局事件总线作用安装组件使用案例案例分析组件一(小明)组件二(小红)效果展示二、订阅与发布安装组件使用案例案例分析组件一(小明)组件二(小红)效果展示
一、全局事件总线
作用
一种组件间通信的方式适用于任意组件间通信。
安装
安装全局事件总线:在入口文件main.js中,给VM添加$bus,任意组件都可以在原型中调用。
newVue({
render:h=h(App),
beforeCreate(){
Vtotype.$bus=this
}).$mount('#app')
组件使用案例
案例分析
创建两个子组件,如下组件,其中注释内容是演示订阅与发布无视即可
下面代码所演示的是,小明组件给小红组件姓名小明,小红组件给小明组件年龄,主要通过自定义事件,其中小明组件自定义getName,需要传递给小红组件,小红组件就需要getName来接收,也可以销毁传递
发送代码如下
this.$bus.$emit('getName',)//是所要传递的值,
接收代码如下
this.$bus.$on('getName',(name)={
console.log('小红得到的名字',name);
})
销毁代码如下
需要一个点击事件来触发
this.$bus.$off('getName')
组件一(小明)
template
div
姓名:{{name}}年龄:{{age}}button@click="sendMsg"给小红组件传姓名/buttonbutton@click="del"销毁传递/button
/div
/template
script
//importpubsubfrom'pubsub-js'
exportdefault{
name:'XiaoMing',
data(){
return{
name:'小明',
age:20
methods:{
sendMsg(){
//pubsub.publish('usname',)
this.$bus.$emit('getName',)
del(){
this.$bus.$off('getName')
console.log('已销毁');
mounted(){
//pubsub.subscribe('age',(e,page)={
//console.log('小明得到小红',e,page);
//})
this.$bus.$on('getAge',(age)={
console.log('小明得到的年龄',age);
/script
style
/style
组件二(小红)
template
div
姓名:{{name}}年龄:{{age}}button@click="sendAge"给小明组件传年龄/buttonbutton取消订阅/button
/div
/template
script
//importpubsubfrom'pubsub-js'
exportdefault{
name:'XiaoHong',
data(){
return{
name:'小红',
age:18
methods:{
sendAge(){
//pubsub.publish('age',this.age)
this.$bus.$emit('getAge',this.age)
//noRead(){
//pubsub.unsubscribe(this.del)
//}
mounted(){
//this.del=pubsub.subscribe('usname',(q,msg)={
//console.log('小红得到小明',q,msg)
//}),
this.$bus.$on('getName',(name)={
console.log('小红得到的名字',name);
/script
style
/style
效果展示
二、订阅与发布
一种组件间通信的方式,适用于任意组件间通信,如今有很多消息订阅与发布的包,在这里只介绍一种,pubsub-js。
打开终端输入命令:npmipubsub-js
组件使用案例
通过订阅与发布的方式,小明组件给小红组件姓名,小红组件给小明组件年龄
第一步我们需要引入:importpubsubfrompubsub-js
第二步通过在小明组件发布
pubsub.publish('usname',)//usname:发布消息的名称,第二个参数:为发布内容
第三步在小红组件订阅
this.del=pubsub.subscribe('usname',(q,msg)={
console.log('小红得到小明',q,msg)
})
第四步想要取消订阅,自定义事件,绑定销毁,通过第三步的this.del
pubsub.unsubscribe(this.del)
组件一(小明)
template
div
姓名:{{name}}年龄:{{age}}button@click="sendMsg"给小红组件传姓名/buttonbutton销毁传递/button
/div
/template
script
importpubsubfrom'pubsub-js'
exportdefault{
name:'XiaoMing',
data(){
return{
name:'小明',
age:20
methods:{
sendMsg(){
pubsub.publish('usname',)
//this.$bus.$emit('getName',)
//del(){
//this.$bus.$off('getName')
//console.log('已销毁');
//}
mounted(){
pubsub.subscribe('age',(e,page)={
console.log('小明得到小红',e,page);
//this.$bus.$on('getAge',(age)={
//console.log('小明得到的年龄',age);
//})
/script
style
/style
组件二(小红)
template
div
姓名:{{name}}年龄:{{age}}button@click="sendAge"给小明组件传年龄/buttonbutton@click="noRead"取消订阅/button
/div
/template
script
importpubsubfrom'pubsub-js'
exportdefault{
name:'XiaoHong',
data(){
return{
name:'小红',
age:18
methods:{
sendAge(){
pubsub.publish('age',this.age)
//this.$bus.$emit('getAge',this.age)
noRead(){
pubsub.unsubscribe(this.del)
mounted(){
this.del
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC 61300-3-50:2025 RLV EN Fibre optic interconnecting devices and passive components - Basic test and measurement procedures - Part 3-50: Examinations and measurements - Cr
- 【正版授权】 IEC 62351-7:2025 EN-FR Power systems management and associated information exchange - Data and communications security - Part 7: Network and System Management (NSM) data obj
- 2025年高职(数字广告设计)广告创意设计试题及答案
- 2025年高职建筑智能化工程技术(安防系统安装)试题及答案
- 工程法规及相关知识课件
- 制药厂销售安全培训内容课件
- 制氢站安全培训课件
- 《中学生日常行为规范》知识竞赛试题及答案
- 戈谢病基因治疗的联合用药策略
- 湖北省咸宁市2023-2024学年七年级上学期1月期末英语试题(含答案)
- 国家开放大学电大《国际私法》形考任务1-5题库及答案
- 天津市和平区2024-2025学年度八年级物理上学期期末质量调查试卷
- QSB知识培训资料重点
- 地理七上复习课件
- GB/T 9390-2017导航术语
- GB/T 1962.1-2015注射器、注射针及其他医疗器械6%(鲁尔)圆锥接头第1部分:通用要求
- GA/T 527.1-2015道路交通信号控制方式第1部分:通用技术条件
- 北京市西城区2021-2022学年第一学期期末初三物理试题及答案(PDF版)
- 室内精装修分包工程策划汇报课件
- 申论答题卡word模板
- 红色绘本小故事爱国教育-长征路上的红小丫课件
评论
0/150
提交评论