Vue Element UI 之同级/兄弟组件间传值(sessionStorage,eventBus,同一父组件)
发布日期:2021-10-13 12:43:46
浏览次数:1
分类:技术文章
本文共 1209 字,大约阅读时间需要 4 分钟。
扩展连接
父子组件间传值: 发布者-订阅者模式:
方式一、通过sessionStorage
优点:无需通过任何事务触发;随时随地获取,不受组件间关系限制
// 存入,在A.vuewindow.sessionStorage.setItem('currentID', this.currentID)// 取出,在B.vuethis.id = window.sessionStorage.getItem('currentID')
方式二、通过eventBus
转自:
注意:需要通过 click 事件触发
接下来的示例中,ParentCard组件包含了SisterCard和BrotherCard两个子组件,而且这两个子组件是兄弟组件。
首先在main.js文件中定义一个新的eventBus对象,其实他是一个全新的Vue实例:export const eventBus = new Vue()
// main.jsimport Vue from 'vue'import App from './App' export const eventBus = new Vue() new Vue({ el: '#app', render: h => h(App)})
接着在新创建的BrotherCard组件中:
// BrotherCard.vue
在SisterCard组件中:
参考自:
// SisterCard.vue
经测试,效果如下:
- eventBus.$on 在 mounted 和 create 中均可以实现获取参数,具体根据你的需要来写
- 无论 eventBus.$on 写在 mounted 中还是 create 中,DOM 渲染结束之后均不能实现数据显示在页面上(如果想要刷新页面即显示数据,可以用 sessionStronge 来实现)
方式三、通过同一父组件
转自:
接下来的示例中,ParentCard组件包含了SisterCard和BrotherCard两个子组件,而且这两个子组件是兄弟组件。
首先创建ParentCard组件:在ParentCard的中定制了一个@sisterSaid事件侦听器,它触发了messageSon()方法。所以父组件在这两个兄弟组件之间起到了传递的作用。
// ParentCard.vue
创建SisterCard组件:
// SisterCard.vue
接着创建BrotherCard组件:
// BrotherCard.vue
转载地址:https://blog.csdn.net/qq_41956139/article/details/104598942 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年04月04日 11时45分55秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Nacos 入门教程
2019-04-29
OpenFeign组件的使用(使用nacos作为服务注册中心)
2019-04-29
Docker 容器时区时间不一致问题解决
2019-04-29
查看docker的端口映射情况
2019-04-29
Sentinel入门
2019-04-29
Sentinel的blockHandler与fallback的区别
2019-04-29
幂等性
2019-04-29
RPC和Restful深入理解
2019-04-29
layui.table.render设置自定义高度高度
2019-04-29
为nginx反向代理设置自定义错误页面
2019-04-29
使用nginx动静分离后,druid被拦截的解决方法
2019-04-29
Sentinel结合Fejgn接口,进行调用远程接口的调用和限流
2019-04-29
JWT 详细分析
2019-04-29
Netty的引用计数对象
2019-04-29
五、Netty核心组件
2019-04-29
北京大学MOOC 程序设计与算法(三)魔兽世界之一:备战
2019-04-29
北京大学MOOC 程序设计与算法(三)魔兽世界之二:装备
2019-04-29
北京大学MOOC 程序设计与算法(三)魔兽世界三(开战)
2019-04-29
C#实现扫雷小游戏
2019-04-29