华企号 元宇宙 Vue 事件

Vue 事件

方式1: 全局事件总线

1.在main.js文件中定义

 

1
2
3
4
5
6
7
8
9
new Vue({
 el: '#app',
 router,
 store,
 render: h => h(App),
 beforeCreate(){
   Vue.prototype.$bus = this
 }
})

2.使用方法

// 传值 (可以在你定义的方法中传值)

this.$bus.$emit(‘定义名称’,值)

// 监听数据 (在mounted监听数据)

this.$bus.$on(‘定义名称’ val=>{})

// 销毁(在beforeDestroy销毁)

this.$bus.$off(‘定义名称’)

方式2:

1.在main.js的同级建一个bus.js

 

1
2
import Vue from "vue"
export default new Vue

 

2.在main.js引入

// 事件中央总线传值

1
Vue.prototype.bus = new Vue();

3.使用方法

// 1.引入(传值和监听数据部分都需引入bus.js文件)

import Bus from ‘@bus.js’

// 传值(我是在beforeDestroy中传值的)

Bus.$emit(‘定义名称’,值)

// 监听数据 (我在beforeCreate 中监听数据)

Bus.$on(‘定义名称’,val=>{})

//销毁(在监听数据页面的 beforeDestroy 中销毁)

Bus.$off(‘定义名称’)

扩展: 还可以使用消息订阅与发布的方式 实现任意组件间的传值

方法:

// 下载插件 pubsub-js

npm i pubsub-js –save

// 在需要传和监听的页面引入

import pubsub from ‘pubsub-js’

// 发布(传值)

pubsub.publish(‘xxx’,值)

// 订阅(接收)

this.pubId = pubsub.subscribe(‘xxx’,(msgName,data)=>{

// 注意 msgName的值为你定义的 xxx  data为你真正传过来的 值

})

// 销毁 (在beforeDestroy)

pubsub.unsubscribe(this.pubId)

作者: 华企网通王鹏程序员

我是程序员王鹏,热爱互联网软件开发和设计,专注于大数据、数据分析、数据库、php、java、python、scala、k8s、docker等知识总结。 我的座右铭:"业精于勤荒于嬉,行成于思毁于随"
上一篇
下一篇

发表回复

联系我们

联系我们

028-84868647

在线咨询: QQ交谈

邮箱: tech@68v8.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部