为了账号安全,请及时绑定邮箱和手机立即绑定

关于vue $route 和 bus的疑问。

关于vue $route 和 bus的疑问。

侃侃尔雅 2019-02-07 14:15:50
我目前遇到的问题:问题一以前我A跳转到B通过页面传参的形式:domain?params=1 现在用了vue发现可以用router页面间传参:A页面通过this.$router.push({name: 'orderPay', params: {id}})跳转到B页面。B页面通过let orderId = this.$route.params.id获取到id向后台发起请求。跳转OK。但是在B页面原地刷新后,id肯定获取不到。vuex暂时还没看太多,项目小也不打算用。了解了下vue bus 所以有了另一个问题:问题二接着上面的流程,我现在有一个bus.js,里面有个vue实例:export default new Vue({  name: 'bus',  data () {    return {      addr: {        name: '',        phone: '',        area: '',        address: ''      }    }  },  beforeCreate () {  },  created () {    this.$on('getAddr', () => {      console.log('%c bus获取地址成功', 'color:green')    })    this.$on('updateAddr', (obj) => {      this.addr = obj      console.log('%c bus地址更新成功', 'color:green')    })  }})B获取到后台数据后,bus.$emit('updateAddr', that.addr)传入数据到bus,此时B再跳转到C,C通过this.addr = bus.$emit('getAddr').addr也能够获取到数据,但是原地刷新后也没有了。。目前我的思路是问题一:B页面获取到id马上存sessionStorage 或者 还是只有通过url传参问题二:bus只要有数据跟新,马上存本地存储请问各位有没有更多更好的的解决方案或者思路。这个项目其实就是走一个购买流程比较简单,A购买页,B下单页带地址信息,C页面是B跳转过来修改地址信息。
查看完整描述

1 回答

?
LEATH

TA贡献1936条经验 获得超7个赞

刷新页面后,id还在的,但是所有变量,包括vuex中的state都是会重置的。
如果单纯只是想解决url传参问题,那么,刷新是不会重置url的,可以在created钩子里过去id并根据id请求参数。

查看完整回答
反对 回复 2019-02-19
  • 1 回答
  • 0 关注
  • 592 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号