vue缓存之keep-alive,设置想要缓存的页面

2019-12-14 21:01:30
结合router,缓存部分页面
<keep-alive>
    <router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive>
<router-view v-if="!$route.meta.keepAlive"></router-view>
{
  path: '/',
  name: 'Hello',
  component: Hello,
  meta: {
    keepAlive: false // 不需要缓存
  }
},


虽然include,和exclude也能处理这个情况,但我不推荐这样。不好操作。

我们也可以监控,route变化,动态复制keep-live,看下一篇文章


include 使该标签作用于所有name属性的值跟此标签 include的属性值一致的vue页面


exclude 使该标签不作用于所有name属性的值跟此标签 exclude的属性值一致的vue页面


然后我就掉进坑里了,配置了一堆路由的name!!!!!无效!!!


使用include/exclude 属性需要给所有vue类的name赋值(注意不是给route的name赋值),否则 include/exclude不生效



  • 2020-11-12 14:01:46

    使用postMessage来实现父子通信跨域

    1.子向父,子postMessage,父监听message; 2.父向子,父postMessage,子监听message; 3.测试发现,子向父postMessage的时候,源可以写为‘*’,父向子postMessage的时候,源需要写成子的源,(也就是子页面的协议+主机号+端口) 测试代码部分:

  • 2020-11-12 14:24:39

    Object.entries()

    Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for...in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环还会枚举原型链中的属性)