解决路由缓存问题

问题

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

解决方式

为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)
    })
相关推荐
盖头盖5 分钟前
【nodejs中的ssrf】
前端
江城开朗的豌豆14 分钟前
TypeScript和JavaScript到底有什么区别?
前端·javascript
鸡吃丸子1 小时前
初识Docker
运维·前端·docker·容器
老华带你飞1 小时前
学生请假管理|基于springboot 学生请假管理系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·后端·spring
前端不太难1 小时前
如何给 RN 项目设计「不会失控」的导航分层模型
前端·javascript·架构
一 乐1 小时前
校务管理|基于springboot + vueOA校务管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·spring
用户4099322502121 小时前
Vue3中v-show如何通过CSS修改display属性控制条件显示?与v-if的应用场景该如何区分?
前端·javascript·vue.js
不会聊天真君6472 小时前
CSS3(Web前端开发笔记第二期)
前端·笔记·css3