博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue2.x中使用Bus遇到的问题及解决方法
阅读量:3925 次
发布时间:2019-05-23

本文共 509 字,大约阅读时间需要 1 分钟。

场景描述:在vue项目中需要在A页面传值到B页面(A和B非关系组件)
问题描述:在A页面点击跳转路由需要把A页面data中的值传到B页面,但是bus总线在第一次路由跳转的时候总是不能够成功传递需要传递的数据
准备工作:在Vue的mian.js文件中添加以下代码就可以使用了

在这里插入图片描述

解决方法:bus的$on的监听应该位于 $emit之前,如果在emit之前没有创建监听事件,那么肯定是得不到需要的数据

就需要在A页面的beforeDestroy或者Destroy生命周期发送数据

在B页面中需要 beforeCreate或created或 beforeMount生命周期中接收数据

在这里插入图片描述
此时你会发现在控制台可以打印title的数据 但是这个数据无法直接赋值使用
在这里插入图片描述
所以我们就需要把接收到的数据存放在Bus的中 然在mounted中赋值 这样接收的值就可以渲染在页面上了
在这里插入图片描述
此时还有一步就算基本完成了
在我们用总线传值完成的时候要记得关闭监听不然会出现问题
在这里插入图片描述
结束:这样就解决问题了,但是在B页面刷新时,所传的数据会丢失,可以配合sessionStorage来使用,防止刷新导致数据丢失;解决的方法有多种多样,同样可以使用Vuex来实现。

转载地址:http://igkgn.baihongyu.com/

你可能感兴趣的文章
SpringBoot系列(1)基础入门和案例
查看>>
设计模式之命令模式
查看>>
springBoot系列(2)整合MongoDB实现增删改查(完整版)
查看>>
java关键字(6)void
查看>>
面试必问:java中String对象为什么要设计成不可变的呢?
查看>>
深入分析java中的反射机制
查看>>
java集合类(7)Stack
查看>>
7、深入分析java中的泛型机制
查看>>
java序列化机制之protobuf框架(快速高效跨语言)
查看>>
6-1 Book类的设计 (10分)
查看>>
7-3 学生类-构造函数 (15分)
查看>>
7-4 类的定义与对象使用 (15分)
查看>>
7-5 jmu-Java-03面向对象基础-02-构造函数与初始化块 (20分)
查看>>
6-1 数组工具类的设计 (16分)
查看>>
7-1 程序填空题2 (12分)
查看>>
7-2 程序改错题3 (12分)
查看>>
7-3 计算年龄 (20分)
查看>>
7-3 利用集合类排序 (12分)
查看>>
6-1 创建一个直角三角形类实现IShape接口 (10分)
查看>>
6-2 从抽象类shape类扩展出一个圆形类Circle (10分)
查看>>