解决路由缓存问题

问题

使用带有参数的路由时,相同的组件实例被重复使用。因为两个路由都渲染同个组件,比起销毁再创建,服用则更显得高效,但是这也意味着组件的生命周期的钩子不会被调用。

解决方式

为router-view添加key

html 复制代码
<router-view :key="$route.fullPath"></router-view>

onBeforeRouteUpdate

beforeRouteUpdate钩子函数可以在每次路由更新之前执行,在回调中执行需要数据更新的业务逻辑即可

javascript 复制代码
    // 保存面包屑数据
    const categoryData = ref({})
    // 面包屑数据
    // 调用getCategory方法时,若传了值,则用传的值。若没传值,则用route.params.id
    const getCategory = async (id = route.params.id) => {
        const res = await getCategoryAPI(id);
        categoryData.value = res.data.result;
        console.log(categoryData.value)
    }
    onMounted(() => getCategory())
    // 路由参数变化时,可以把分类数据接口重新发送
    onBeforeRouteUpdate((to) => {
    	// to带着参数
        getCategory(to.params.id)
    })
相关推荐
步步为营DotNet1 小时前
深度解析CancellationToken:.NET中的优雅取消机制
java·前端·.net
一位搞嵌入式的 genius2 小时前
从 ES6 到 ESNext:JavaScript 现代语法全解析(含编译工具与实战)
前端·javascript·ecmascript·es6
linweidong4 小时前
C++ 模块化编程(Modules)在大规模系统中的实践难点?
linux·前端·c++
leobertlan7 小时前
2025年终总结
前端·后端·程序员
子兮曰8 小时前
OpenClaw架构揭秘:178k stars的个人AI助手如何用Gateway模式统一控制12+通讯频道
前端·javascript·github
Howrun7778 小时前
VSCode烦人的远程交互UI讲解
ide·vue.js·vscode
百锦再8 小时前
Reactive编程入门:Project Reactor 深度指南
前端·javascript·python·react.js·django·前端框架·reactjs
莲华君8 小时前
React快速上手:从零到项目实战
前端·reactjs教程
百锦再8 小时前
React编程高级主题:测试代码
android·前端·javascript·react.js·前端框架·reactjs
易安说AI9 小时前
Ralph Loop 让Claude无止尽干活的牛马...
前端·后端