解决路由缓存问题

问题

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

解决方式

为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)
    })
相关推荐
索然无味io33 分钟前
XML外部实体注入--漏洞利用
xml·前端·笔记·学习·web安全·网络安全·php
ThomasChan1231 小时前
Typescript 多个泛型参数详细解读
前端·javascript·vue.js·typescript·vue·reactjs·js
爱学习的狮王1 小时前
ubuntu18.04安装nvm管理本机node和npm
前端·npm·node.js·nvm
东锋1.31 小时前
使用 F12 查看 Network 及数据格式
前端
zhanggongzichu1 小时前
npm常用命令
前端·npm·node.js
anyup_前端梦工厂1 小时前
从浏览器层面看前端性能:了解 Chrome 组件、多进程与多线程
前端·chrome
chengpei1471 小时前
chrome游览器JSON Formatter插件无效问题排查,FastJsonHttpMessageConverter导致Content-Type返回不正确
java·前端·chrome·spring boot·json
我命由我123452 小时前
NPM 与 Node.js 版本兼容问题:npm warn cli npm does not support Node.js
前端·javascript·前端框架·npm·node.js·html5·js
每一天,每一步2 小时前
react antd点击table单元格文字下载指定的excel路径
前端·react.js·excel
浪浪山小白兔2 小时前
HTML5 语义元素详解
前端·html·html5