Rumah > hujung hadapan web > tutorial js > 在vue中使用路由实现页面刷新

在vue中使用路由实现页面刷新

亚连
Lepaskan: 2018-06-09 14:45:37
asal
1647 orang telah melayarinya

本篇文章主要介绍了vue通过路由实现页面刷新的方法,现在分享给大家,也给大家做个参考。

vue 开发微信商城项目,

需求如下:

购物车页面跳转到详情页,购物车页面包含了多个组件,点击结算跳转到订单页面,从订单返回时,购物车页面没有刷新,由于购物车组件之间通过bus实现事件传递,页面跳转(非物理返回)无法触发beforeDestroy方法,则无法再此方法中销毁bus方法

 beforeDestroy() {
  this.$root.Bus.$off('judge')
  this.$root.Bus.$off('refreshDetail')
  this.$root.Bus.$off('clearAll')
  this.$root.Bus.$off('upDataCart')
 },
Salin selepas log masuk

无奈,通过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()
 },
Salin selepas log masuk

同样的,物理返回时无法触发购物车的created方法,则无法触发bus的$on方法

归根结底,物理返回时刷新页面则可以处理此问题

思路一

  beforeRouteEnter(to, from, next) {
   next(()=>{
     window.location.reload()
   })
  },
Salin selepas log masuk

此方法理论貌似可行,但是页面会狂刷不止,

最后采用了思路二,貌似是一个很low的方法,但是解决了实际问题

 this.$router.replace({ name: 'cart' })// 处理返回刷新问题
   this.$router.push({
    path: '/order/order_sure',
    query: {
     sku: sku_str,
     cart: 'cart'
    }
   })
Salin selepas log masuk

页面跳转前先通过路由replace到当前页,再跳转到订单页面,返回可以自动刷新了,这个方法并不理想,如果您有更好的方法,欢迎分享

有专门的方法处理此问题,在购物车页面,添加如下代码即可

 // 销毁组件,返回刷新
 deactivated() {
  this.$destroy()
 },
Salin selepas log masuk

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

PHP闭包和匿名函数(详细教程)

在Vue组件中有关自定义事件(详细教程)

在微信小程序中如何使用三级联动选择器

Atas ialah kandungan terperinci 在vue中使用路由实现页面刷新. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan