解决路由缓存问题

问题

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

解决方式

为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 分钟前
TypeScript 类型体操练习笔记(三)
前端·typescript
华仔啊8 分钟前
除了防抖和节流,还有哪些 JS 性能优化手段?
前端·javascript·vue.js
chenhdowue15 分钟前
vue 表格 vxe-table 高亮行支持取消操作
vue.js·vxe-table
CHU72903516 分钟前
随时随地学新知——线上网课教学小程序前端功能详解
前端·小程序
清粥油条可乐炸鸡17 分钟前
motion入门教程
前端·css·react.js
这是个栗子21 分钟前
【Vue3项目】电商前台项目(四)
前端·vue.js·pinia·表单校验·面包屑导航
前端Hardy24 分钟前
Electrobun 正式登场:仅 12MB,JS 桌面开发迎来轻量化新方案!
前端·javascript·electron
树上有只程序猿25 分钟前
新世界的入场券,不再只发给程序员
前端·人工智能
confiself35 分钟前
deer-flow前端分析
前端
刘宇琪36 分钟前
Vite 生产环境代码分割与懒加载优化
前端