场景描述
同一个页面,使用了动态路由来接收参数,对改页面再次发起请求不会进行更新,Router判定为同一个页面,不进行刷新操作
import {useRoute} from "vue-router"
import router from "../router/index.js"
let userRou = useRoute()
let id = userRou.params.id
// 如果再次发起请求不会刷新页面内容
router.push({path: '/article/' + data.id})
解决方法
比较好的做法是在该页面进行路由监听,这样节省了加载相同资源的过程,以下是基于Vue3的核心代码:
import {watch} from "vue"
// 监听相同页面路由变化,解决不刷新问题,避免重复加载相同资源
watch(() => router.currentRoute.value.path, (newValue, oldValue) => {
console.log('watch', newValue);
console.log(userRou.params.id)
}, {immediate: true})