vue组件keepAlive的使用

需要达到的效果:

列表页------->详情页/修改------>返回列表页(缓存列表页)

其它不缓存

 

//vuex/index.js

new Vuex.store({
    state: {
        catchPages: []
    },  mutations: {
        add(state,item) {
            if (state.catchPages.indexOf(item) === -1)
            state.catchPages.push(item);
        },remove(state,item) {
            let index = state.catchPages.indexOf(item);
            if(index >0)
            state.catchPages.splice(index,1)
        }
    },actions: {
        add(state,item) {
            state.commit('add',item)
        },item) {
            state.commit('remove'return content.catchPages;
        }
    }
})

路由入口的写法:

<!--app.vue-->

<keep-alive :include="$store.getters.catchPages">
        router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive="!$route.meta.keepAlive">

在路由钩子 beforeRouteLeave 中把需要缓存的组件的name加入 vuex 中的 catchPages 数组中

beforeRouteLeave(to,from,next){
    do something
  next();
}

 

相关文章

https://segmentfault.com/a/1190000022018995 https://www....
ES6 (ECMAScript 6)中的模块是一个包含 JavaScript 代码的...
from https://mp.weixin.qq.com/s/-rc1lYYlsfx-wR4mQmIIQQ V...
D:\Temp&gt;npm init vite@latest vue3study --temp...
文章浏览阅读1.2k次。最近自己从零撸起的甘特图组件需要子组...
文章浏览阅读3.3k次,点赞3次,收藏16次。静默打印是什么?简...