keep-alive

2020-01-13  本文已影响0人  缪先生_

vue-cli v3.0

include - 字符串或正则表达式。只有名称匹配的组件会被缓存。
exclude - 字符串或正则表达式。任何名称匹配的组件都不会被缓存。(在这里写三目运算,来判断是否缓存组件)
max - 数字。最多可以缓存多少组件实例。
<keep-alive> 是用在其一个直属的子组件被开关的情形。如果你在其中有 v-for 则不会工作。
如果有上述的多个条件性的子元素,<keep-alive> 要求同时只有一个子元素被渲染。
<keep-alive include="AboutIndex" max="1" :exclude="isKeepalive?'':'AboutIndex'">
      <router-view/>
</keep-alive>
//AboutIndex 是需要被缓存的组件 是组件name名
 data() {
    return {
        isKeepalive: false,//是否对该组件进行缓存
    };
  },

我这边是使用watch 来判断的路由,根据个人情况来使用。你也可以使用组件路由判断。

  watch: {
    //监听路由 判断是否进行keep-alive动态缓存 
    $route: function(to, from) {
      if (to.name === "detail"||to.name === "about") {
        this.isKeepalive = true;
      }else{
        this.isKeepalive = false;
      }
    }
  },
上一篇下一篇

猜你喜欢

热点阅读