时间:2021-05-26
vue 开发微信商城项目,
需求如下:
购物车页面跳转到详情页,购物车页面包含了多个组件,点击结算跳转到订单页面,从订单返回时,购物车页面没有刷新,由于购物车组件之间通过bus实现事件传递,页面跳转(非物理返回)无法触发beforeDestroy方法,则无法再此方法中销毁bus方法
无奈,通过beforeRouteLeave来销毁
beforeRouteLeave(to, from, next) { this.$root.Bus.$off('judge') this.$root.Bus.$off('refreshDetail') this.$root.Bus.$off('clearAll') this.$root.Bus.$off('upDataCart') next() },同样的,物理返回时无法触发购物车的created方法,则无法触发bus的$on方法
归根结底,物理返回时刷新页面则可以处理此问题
思路一
beforeRouteEnter(to, from, next) { next(()=>{ window.location.reload() }) },此方法理论貌似可行,但是页面会狂刷不止,
最后采用了思路二,貌似是一个很low的方法,但是解决了实际问题
this.$router.replace({ name: 'cart' })// 处理返回刷新问题 this.$router.push({ path: '/order/order_sure', query: { sku: sku_str, cart: 'cart' } })页面跳转前先通过路由replace到当前页,再跳转到订单页面,返回可以自动刷新了,这个方法并不理想,如果您有更好的方法,欢迎分享
有专门的方法处理此问题,在购物车页面,添加如下代码即可
// 销毁组件,返回刷新 deactivated() { this.$destroy() },以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
网段与lan口ip地址冲突的解决方法: 1、通过路由器实现IP“静态绑定”操作。对此首先需要获取局域网中所有电脑的MAC地址,并通过路由器实现静态IP分配,从
1.vue路由可以实现单页面应用。路由三要素:vue路由通过hash的变化切换页面(组件/div)导航存储页面(组件)的容器src/router/index.j
在我们修改过页面的某些数据后,通过想要把页面刷新一下,看看修改后的结果。由于vue的存在,页面是不会自动刷新的,需要我们手动进行操作。在vue里有三种刷新方法,
使用vuxUI组件库使用vue-navigation缓存页面,此库实现了前进刷新后退读缓存的功能,像原生APP导航一样。用子路由的方式实现tabbar有bug,
1、路由通信传值路由通信是通过路由跳转用query把参数带过去,也是vue常用的通信手段。例子:创建并在路由注册一个组件HeadclickMe//给按钮绑定点击