vue3中从g(-1)回到当前页面,不会执行onmounted方法
时间: 2024-02-17 18:04:27 浏览: 190
在 Vue 3 中,当从当前页面的后代路由返回到祖先路由时,Vue 不会重新创建组件实例,也就不会再次执行 `setup` 函数和 `mounted` 钩子函数。因此,如果你从 `-1` 路由回到当前页面,`mounted` 钩子函数不会被触发。
如果你想在从 `-1` 路由回到当前页面时执行一些特定的操作,可以使用 `beforeRouteUpdate` 导航守卫。在这个导航守卫中,你可以检查路由变化前后的路径,并在需要的情况下执行一些逻辑操作。例如:
```javascript
import { getCurrentInstance } from 'vue'
export default {
beforeRouteUpdate (to, from, next) {
const vm = getCurrentInstance()
if (from.path === '/-1' && to.path === '/') {
// 从 -1 路由回到当前页面,执行一些逻辑操作
// ...
}
next()
}
}
```
这里使用了 `getCurrentInstance` 函数获取组件实例对象,在导航守卫中可以直接访问组件实例的属性和方法。注意,在使用 `getCurrentInstance` 函数时需要在 `setup` 函数中调用,否则会返回 `null`。
阅读全文