<keep-alive>
<component v-bind:is="view"></component>
</keep-alive>

专属生命周期

activited        keep-alive专属,组件被激活时调用
deadctivated keep-alive专属,组件被销毁时调用

用于子组件缓存,可以让子组件缓存还是不缓存

<!-- 失活的组件将会被缓存!-->
<keep-alive>
<component v-bind:is="currentTabComponent"></component>
</keep-alive>
网上找的很不错,
1、直接使用

<keep-alive>
<component>
<!-- 该组件将被缓存! -->
</component>
</keep-alive>
  • include - 字符串或正则表达,只有匹配的组件会被缓存
  • exclude - 字符串或正则表达式,任何匹配的组件都不会被缓存
    // 组件 a
    export default {
    name: 'a',
    data () {
    return {}
    }
    }
    <keep-alive include="a">
    <component>
    <!-- name 为 a 的组件将被缓存! -->
    </component>
    </keep-alive>可以保留它的状态或避免重新渲染

    需要router

    <keep-alive>
    <router-view>
    <!-- 所有路径匹配到的视图组件都会被缓存! -->
    </router-view>
    </keep-alive>
    • 使用 include/exclude
    • 增加 router.meta 属性
      // 组件 a
      export default {
      name: 'a',
      data () {
      return {}
      }
      }
      <keep-alive include="a">
      <router-view>
      <!-- 只有路径匹配到的视图 a 组件会被缓存! -->
      </router-view>
      </keep-alive>

      增加router属性

      // routes 配置
      export default [
      {
      path: '/',
      name: 'home',
      component: Home,
      meta: {
      keepAlive: true // 需要被缓存
      }
      }, {
      path: '/:id',
      name: 'edit',
      component: Edit,
      meta: {
      keepAlive: false // 不需要被缓存
      }
      }
      ]
      <keep-alive>
      <router-view v-if="$route.meta.keepAlive">
      <!-- 这里是会被缓存的视图组件,比如 Home! -->
      </router-view>
      </keep-alive> <router-view v-if="!$route.meta.keepAlive">
      <!-- 这里是不被缓存的视图组件,比如 Edit! -->
      </router-view>

      分析一个写的很详细的地方:很详细https://www.jianshu.com/p/0b0222954483

vue中keep-alive路由缓存的更多相关文章

  1. vue中怎样实现 路由拦截器

    vue中怎样实现 路由拦截器(当用户没有登录的时候,跳转到登录页面,已经登录的时候,不能跳转到登录页,除非后台token失效) 在 我们需要实现这样 一个功能,登录拦截 其实就是 路由拦截,首先在定义 ...

  2. vue中使用keepAlive组件缓存遇到的坑

    项目开发中在用户由分类页category进入detail需保存用户状态,查阅了Vue官网后,发现vue2.0提供了一个keep-alive组件. 上一篇讲了keep-alive的基本用法,现在说说遇到 ...

  3. [Vue 牛刀小试]:第十二章 - 使用 Vue Router 实现 Vue 中的前端路由控制

    一.前言 前端路由是什么?如果你之前从事的是后端的工作,或者虽然有接触前端,但是并没有使用到单页面应用的话,这个概念对你来说还是会很陌生的.那么,为什么会在单页面应用中存在这么一个概念,以及,前端路由 ...

  4. vue中的静态路由

    单页Web应用(single page web application,SPA),就是只有一张Web页面的应用.单页应用程序 (SPA) 是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面 ...

  5. 060——VUE中vue-router之路由嵌套在文章系统中的使用方法:

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 059——VUE中vue-router之路由嵌套在文章系统中的使用方法:

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. vue中监听路由参数的变化

    在vue项目中,假使我们在同一个路由下,只是改变路由后面的参数值,期望达到数据的更新. mounted: () =>{ this.id = this.$route.query.id; this. ...

  8. vue 中 相同的路由不会跳转,更改路由的办法

    vue 开发的项目,路由跳转的时候,是相同的路由是不会跳转,页面也不会有更新的 有时候 必须要跳转怎么办, 更改一个参数,num,一直在改变.就可以进入了. this.$router.push({ p ...

  9. 057——VUE中vue-router之路由参数默认值的设置

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. 056——VUE中vue-router之路由参数的验证处理保存路由安全

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. SSH整合入门案例

    package loaderman.action; import java.util.Map; import com.opensymphony.xwork2.ActionContext; import ...

  2. [mybatis]传值和返回结果

    一.传值:parameterType的形式:可以传递一个类,也可以是一个map <update id="updateCategory" parameterType=" ...

  3. Selenium 2自动化测试实战32(Fixtures)

    Fixtures fixtures可以形象地把它看作是夹心饼干外层的两片饼干,这两片饼干就是setUp/tearDown,中间的心就是测试用例.除此之外,unittest还提供了更大范围的fixtur ...

  4. HashMap ArrayList 和 List对象的转换

    public static void main(String[] args) { List list = new ArrayList<>(); HashMap map = new Hash ...

  5. 1、vinc = vict 胜、征服

  6. Elasticsearch 在CentOs7 环境中开机启动

    由于园区的电源不是很稳定,经常会断电,断电之后几十台服务器,启动服务都要人肉启动,真是非常蠢的行为: 开机自启动服务就很有必要,之前设置过,后来没有成功就不管了,断电好几次之后,意识到这个问题就很严重 ...

  7. JAVA 基础编程练习题4 【程序 4 分解质因数】

    4 [程序 4 分解质因数] 题目:将一个正整数分解质因数.例如:输入 90,打印出 90=2*3*3*5. 程序分析:对 n 进行分解质因数,应先找到一个最小的质数 k,然后按下述步骤完成: (1) ...

  8. 1.ini读写操作

    一.使用 TIniFile implementationvar  ini:tinifile;  path:string;       {ini文件路径}  section,key:string;{表示 ...

  9. vue build后 less sass background-img找不到文件

    修改build下面的utils.js配置 if (options.extract) { return ExtractTextPlugin.extract({ use: loaders, publicP ...

  10. python 安装第三方模块的各种方法

    whl包的安装:pip install **.whl(要有pip 和 下载好的whl文件) tar.gz包的安装:python setup.py install (先将tar.gz解压到指定文件夹,在 ...