[vuejs/vue-router]浏览器地址变化后wechat不刷新页面的问题

2024-01-03 21 views
0

路由配置: const router = new VueRouter({ history: true, saveScrollPosition: true, root: '/mp' });

使用router.go跳转,wechat不回刷新页面,地址栏的query是发生变化的: self.$route.router.go({ name: 'orders', query: { content: res.resultStr, } })

使用window.location.href直接跳转的话wechat会刷新页面: let url = 'http://xxxxxx'; window.location.href = url; 我在router.go里是不是少写了什么参数?

回答

9

你需要watch一下$route, 然后在callback里用改变的query重新发请求。这跟浏览器没有关系。

watch: {
  '$route'(route) {
     // 根据 route.query重新请求数据,然后赋值给vm
   }
}
7

这样是可以,不过需要把ready里的逻辑移动到watch里

我记以前加了canReuse: false,ready方法会重新执行的? @fnlctrl

4

canReuse的行为没有变,你设置了false的话现在也会重新执行ready,但canReuse在2.0被移除了。 给$route加watcher是2.0的推荐做法,同时也是1.0和2.0通用的。

8

要watch的是$route不是$router......