vue-router 访问同一路由,刷新页面
时间: 2023-02-12 10:12:53 浏览: 140
使用 vue-router 访问同一路由并刷新页面可以使用 $router.go() 或 $router.replace() 方法。
$router.go() 方法可以跳转到历史记录中的特定偏移量,负数表示后退,正数表示前进。
$router.replace() 方法可以替换当前路由记录,不会留下历史记录。
例如:
```
this.$router.go(0)
```
或
```
this.$router.replace({path: '/same-route'})
```
如果您想在访问同一路由时重新渲染组件,可以使用key属性
例如:
```
<router-view :key="$route.fullPath"></router-view>
```
这样就能在访问同一路由时重新渲染组件了。
相关问题
vue-route访问同一路由刷新页面
在 Vue Router 中,如果要在访问同一路由时刷新页面,可以使用 $router.replace() 方法来替代 $router.push() 方法。这样可以避免路由记录中产生重复的记录,并且使用 $router.go(-1) 或 $router.back() 返回时不会返回到当前路由。
例如:
```
this.$router.replace({path: '/current'});
```
或者
```
this.$router.replace({path: this.$route.path});
```
使用这种方式刷新页面时,需要注意的是会触发导航守卫中的 beforeRouteUpdate 钩子函数。
VUE同一路由强制刷新页面
在 Vue.js 中,如果你希望在同一路由下强制刷新页面,通常不会直接操作 Vue Router 的 `push` 或 `replace` 方法以设置 `forceRefresh`。因为默认情况下,Vue Router 的懒加载路由会复用现有的组件实例,只更新数据部分。
但是,你可以通过监听 `$route` 的变化,并结合手动操作浏览器的 `location.reload()` 或者 `window.location.href` 来达到强制刷新的效果。例如:
```javascript
export default {
mounted() {
window.addEventListener('beforeRouteUpdate', (to, from, next) => {
if (/* 判断是否需要刷新 */ /* 比如,可能是从服务器获取的数据发生了改变 */) {
location.reload();
// 或者
window.location.href = to.fullPath;
// 也可以取消默认行为并阻止渲染
next(false);
} else {
next(); // 正常更新
}
});
}
}
```
这里的关键在于判断何时需要刷新,这可以根据你的业务逻辑来定制。
阅读全文