keep-alive include和exclude无效问题,踩坑!
include 使该标签作用于所有name属性的值跟此标签 include的属性值一致的vue页面exclude 使该标签不作用于所有name属性的值跟此标签 exclude的属性值一致的vue页面然后我就掉进坑里了,配置了一堆路由的name!!!!!无效!!!使用include/exclude 属性需要给所有vue类的name赋值(注意不是给route的name赋值),否则 incl...
·
include 使该标签作用于所有name属性的值跟此标签 include的属性值一致的vue页面
exclude 使该标签不作用于所有name属性的值跟此标签 exclude的属性值一致的vue页面
然后我就掉进坑里了,配置了一堆路由的name!!!!!无效!!!
使用include/exclude 属性需要给所有vue类的name赋值(注意不是给route的name赋值),否则 include/exclude不生效
正确写法是:
export default {
name:'a', // include 或 exclude所使用的name
data () {
return{
}
},
}
路由:
// 保持 name为a和b的组件
<keep-alive include="a,b">
<router-view/>
</keep-alive>
vue2.0版本后,keep-alive内置组件已经封装了两个属性,include和exclude表示那些组件需要缓存那些组件不需要缓存,用法大致如下:
<keep-alive include="test-keep-alive">
<!-- 将缓存name为test-keep-alive的组件 -->
<component></component>
</keep-alive>
<keep-alive include="a,b">
<!-- 将缓存name为a或者b的组件,结合动态组件使用 -->
<component :is="view"></component>
</keep-alive>
<!-- 使用正则表达式,需使用v-bind -->
<keep-alive :include="/a|b/">
<component :is="view"></component>
</keep-alive>
<!-- 动态判断 -->
<keep-alive :include="includedComponents">
<router-view></router-view>
</keep-alive>
<keep-alive exclude="test-keep-alive">
<!-- 将不缓存name为test-keep-alive的组件 -->
<component></component>
</keep-alive>
另外:
activated,deactivated这两个生命周期函数一定是要在使用了keep-alive组件后才会有的,否则则不存在
更多推荐
已为社区贡献7条内容
所有评论(0)