vue3 点击同一个页面不刷新页面

817 阅读1分钟

项目需求点击同一个页面且能刷新页面,刚开始在路由上面找解决方案,研究了onBeforeRouteUpdate,还是不行,又在网上找答案,说是watch可以解决,但是在vue3中根本就没有触发watch。最后我还是找到了问题所在,使用router-view时,如果在相同路由之间跳转,默认在跳转路由时会采用缓存策略,并不会刷新当前路由组件。即setup,onMounted等钩子函数并不会触发。

方法

//app.vue
<RouterView :key="route.currentRoute.value.fullPath" />

<script setup lang="ts">
import { useRouter } from 'vue-router'
const route = useRouter()
console.log(route.currentRoute.value.fullPath);

</script>