美文网首页
Vue缓存路由

Vue缓存路由

作者: 冰雪_666 | 来源:发表于2020-03-09 14:25 被阅读0次
一、缓存全部路由:
<keep-alive > 
   <router-view ></router-view>
 </keep-alive> 
二、缓存指定路由:
  1. include
<keep-alive :include="该路由组件name”> 
    <router-view ></router-view>
</keep-alive> 
  1. 使用meta:

(1). 路由中做如下配置:

{ 
    path: '/A',
    component:resolve => require(['../components/A'], resolve)
    meta: { requiresAuth: true, title: "标题",keepAlive:true },
},

(2). 在APP.vue中:

<keep-alive > 
    <router-view v-if="$route.meta.keepAlive" ></router-view>
 </keep-alive> 
<router-view v-if="!$route.meta.keepAlive" ></router-view>
三、include和meta区别:
  1. 路由中使用meta只缓存第一次缓存下来的信息。
  2. 如果想实现从指定路由进入当前页面才做缓存keep-alive include比较合适。例如有三个组件A,B,C(假设A,B,C即为组件名字,又是路由名字,又是组件name),要求只有从A组件返回或者进入C组件时,才缓存C组件,代码如下:

(1). store.js中

import Vuex from 'vuex'
Vue.use(Vuex);
export default new Vuex.Store({
    state: {
        cacheRoute: ['C']
    },
    mutations: {
        'CACHEROUTE': (state, data) => {
            state.cacheRoute = data;
        },
    }
})

(2). APP.vue中

<keep-alive :include="cacheRoute" > 
    <router-view ></router-view>
</keep-alive> 

computed:{
    cacheRoute(){
        return this.$store.state.cacheRoute
    }
}

(3). C页面中:

beforeRouteEnter(to, from, next) {
   next(vm => {
    vm.$store.commit('CACHEROUTE',['C'])//C为C组件的名字
   });
},
beforeRouteLeave(to,from,next){
    if(to.path!='/A'){
        this.$store.commit('CACHEROUTE',[''])
    }
    next();
},

相关文章

  • VUE 动态移除缓存路由

    VUE 动态移除缓存路由 在缓存路由时,有时候需要将缓存的路由清除掉达到刷新页面数据的效果。方法如下: 配置路由时...

  • Vue缓存路由

    一、缓存全部路由: 二、缓存指定路由: include 使用meta: (1). 路由中做如下配置: (2). 在...

  • Vue2.0路由是否缓存的方法

    1、在app中设置需要缓存的div 2、在路由router.js中设置.vue页面是否需要缓存 3、从缓存页面跳转...

  • Vue keep-alive 多级路由缓存方案

    基于vue-element-admin框架 的多级路由缓存 https://juejin.im/post/6895...

  • keep-alive使用场景

    Vue中keep-alive的深入理解与使用(配合router-view缓存整个路由页面)在搭建 vue 项目时,...

  • vue 的keep-alive

    vue 的keep-alive Vue 实现组件信息的缓存 当我们在开发vue的项目过程中,避免不了在路由切换到其...

  • 浅谈 vue项目优化

    1.路由懒加载 使用vue-router的方法 2.图片懒加载 组件缓存 使用vue的,详...

  • vue3 路由 组件缓存(和vue2的区别)

    最新项目一直在用vue3来研发,发现了很多和vue2不同的地方,今天这个是路由 组件缓存的不同 路由配置 在app...

  • vue性能优化

    在vue中,在做路由跳转时,我们通常希望去缓存那些活跃的动态组件,我们就会想到用keep-alive去缓存组件。但...

  • Vue应用

    Vue项目 Vue结构 Vue项目打包与发布 Vue语法二 Vue网络请求 Vue路由 动态路由 编程式路由导航

网友评论

      本文标题:Vue缓存路由

      本文链接:https://www.haomeiwen.com/subject/hucpdhtx.html