vue-router重写push方法,解决相同路径跳转报错问题
时间: 2023-09-20 12:11:03 浏览: 251
你可以通过重写 Vue Router 的 `push` 方法来解决相同路径跳转报错的问题。以下是一个示例:
```javascript
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
// 创建一个新的 VueRouter 实例
const router = new VueRouter({
// 路由配置...
})
// 重写 push 方法
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push(location) {
return originalPush.call(this, location).catch(err => {
// 处理重复路由跳转报错问题
if (err.name !== 'NavigationDuplicated') {
throw err
}
})
}
export default router
```
在上述代码中,我们首先导入 `Vue` 和 `VueRouter`,然后使用 `Vue.use(VueRouter)` 来安装 Vue Router 插件。
接着,我们创建一个新的 `VueRouter` 实例,并进行路由配置。
最后,我们重写了 `VueRouter` 的 `push` 方法。在重写的方法中,我们调用原始的 `push` 方法,并使用 `catch` 来捕获错误。如果捕获到的错误不是 `NavigationDuplicated` 错误,则抛出该错误。
这样,当发生重复路由跳转时,不会报错,而是静默处理。
阅读全文