Router相同页面不刷新解决方案
图
Vue Router是Vue.js官方提供的路由管理器插件,用于实现单页面应用程序的路由功能。它通过将URL映射到组件来实现不同页面之间的切换,并支持嵌套路由、动态路由和路由传参等高级功能

场景描述

同一个页面,使用了动态路由来接收参数,对改页面再次发起请求不会进行更新,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})