当前位置: 首页 > news >正文

自助 建网站/视频号视频下载助手app

自助 建网站,视频号视频下载助手app,新网站备案,活动列表 wordpressEventBus 称事件总线,在 vue 项目中作为沟通桥梁的概念,就像所有组件公用相同的事件中心,可以向该中心注册发送事件或接收事件。 使用 EventBus 先来说一个使用场景,项目中假设资产信息管理中有不同类别的资产模块,我…

EventBus 称事件总线,在 vue 项目中作为沟通桥梁的概念,就像所有组件公用相同的事件中心,可以向该中心注册发送事件或接收事件。

使用 EventBus

先来说一个使用场景,项目中假设资产信息管理中有不同类别的资产模块,我们需要在页面中多次调用不同类别的资产查看资产详情页面。可以使用 事件总线,封装一个详情弹框组件,通过 类别名和类别 id 调出对应的详情组件。

初始化 EventBus

main.js 中初始化事件总线,使用两个方法 $on$emit$emit 用于创建发出的事件,$on 用于订阅。

// 创建一个全局的事件总线
Vue.prototype.$bus = new Vue()

创建好了 EventBus,接下来在组件中加载它,并调用同一个方法,如同在父子组件中互相传递消息。

构建详情组件

AssetsDetail.vue 组件

<template><el-dialog:visible.sync="visible":before-close="onClose"width="900px"><component :is="curComp" :id="id"></component></el-dialog>
</template><script>
export default {props: {curComp: {type: String,default: ''},id: Number},components: {device: () => import('@/main/components/basis/device/DeviceDetail'),person: () => import('@/main/components/basis/person/PersonDetail'),},data() {return {visible: true}},methods: {onClose() {this.$emit('update:curComp', '')}}
}
</script><style lang="less" scoped>
/deep/ .el-dialog__body {height: 500px;
}
</style>

发出事件

注意:在命名事件名称的时候,我们最好在一个配置文件中定义好一个事件变量名,然后导出这个事件变量名。

config.js

// 详情组件字段名
let DETAIL = 'detail'export default {DETAIL
}

DeviceList.vue
deviceperson 的列表组件中查看对应的详情

...
import config from '@/assets/scripts/config'
...goDetail(row) {this.$bus.$emit(config.DETAIL, 'device', row.id)}

PersonList.vue

...
import config from '@/assets/scripts/config'
...// 查看人员详情
lookPersonInfoClick(row) {this.title = '详情'this.$bus.$emit(config.DETAIL, 'person', row.id)
}

接收事件

App.vue 中接收刚才发出的事件,并添加刚才封装好的 详情组件。因为我们的 Vue 是单页面的,加载每个组件都会经过 App.vueApp.vue 就相当于我们的父组件,其他子组件中就可以正常使用 事件总线了

App.vue

<template><div id="page-main"><router-view class="router-view" /><assets-detail :curComp.sync="component" :id="id" v-if="component !== ''" /></div>
</template><script>
import AssetsDetail from '@/main/components/AssetsDetail'
import config from '@/assets/scripts/config'export default {components: {AssetsDetail},data() {return {component: '',id: null}},created () {this.$bus.$on(config.DETAIL, (type, id) => {this.component = typethis.id = id})},beforeDestroy() {this.$bus.$off(config.DETAIL)}
}
</script>

这样我们就能在不同的组件中调用不同类别的详情组件了

http://www.lbrq.cn/news/829297.html

相关文章:

  • 知名的网站建设/怎么优化网站关键词的方法
  • 大连市建委培训官方网站/怎样做网络推广挣钱
  • 怎么攻击php做的网站吗/百度关键词搜索工具
  • 咸阳市网站建设/seo软件下载
  • html做校园网站/客服外包
  • 口碑好的番禺网站建设/百度官网登录入口
  • 三端互通传奇手游找服网站/软文推广例子
  • 向客户介绍网站建设的话本/香港疫情最新消息
  • 微网站建设包括哪些方面/seo优化教程下载
  • 哪个网站可以做职业测试/无锡百度竞价公司
  • 长春建站网站/整站排名服务
  • 关于大棚建设的网站/互联网服务平台
  • 网站类型有/软文写作实训总结
  • 贵阳公司网站建立/alexa
  • 网站开发客户需求/手机端关键词排名优化软件
  • wordpress虚拟3d网站/seo投放营销
  • wordpress多站点支付插件/怎么联系地推公司
  • 苍梧网站建设/推广运营是什么工作
  • 国外还有那种做电商的网站/谷歌推广费用
  • 人民大学网站建设/涟源网站seo
  • 做旅游网站宣传/游戏广告联盟平台
  • 黔南网站建设/成都seo培
  • 做博客网站需要工具吗/免费推广软件哪个好
  • wordpress启用多站点/优化关键词的方法正确的是
  • 链家网/如何做好网站站内优化
  • 网站建设毕业论文5000字/搜索引擎排名的三大指标
  • 网页与网站的区别/百度竞价排名商业模式
  • 西安建筑网站建设/宁波seo外包推广排名
  • 国外优秀设计网站/seo交流
  • 坪山网站开发/百度广告大全
  • QT动态加载动态库 QLibrary
  • 自由学习记录(70)
  • 【2025/07/19】GitHub 今日热门项目
  • 全球天气预报5天(经纬度版)免费API接口教程
  • 【Docker】在Linux环境下使用Dockerfile打包镜像(图文示例)
  • Spring学习笔记:Spring SPEL表达式语言深入的学习和使用