keep-alive关闭页签后缓存组件未销毁
问题背景
vue项目中使用页签模式,同时使用keep-alive缓存页签,关闭页签后重新打开,缓存内容仍然存在。
解决方法
使用keep-alive的include属性,属性值为当前打开的页签。即只缓存当前打开的页签。
页签store
页签组件
路由组件
关联知识点
keep-alive
include
:- 字符串或正则表达式。只有名称匹配的组件会被缓存。exclude
: - 字符串或正则表达式。任何名称匹配的组件都不会被缓存。max
: - 数字。最多可以缓存多少组件实例。
inculde
、exclude
匹配组件的写法有三种:
inculde
、exclude
值“a、b”指的是当前这个路由对应组件的name属性值
vuex store
- state: 数据源,相当于组件中的data
- getters:store的计算属性,相当于组件中的computed
- mutations:更改 Vuex 的 store 中的状态的唯一方法是提交(commit) mutation。处理的都是同步事务
- actions:处理异步操作。通过dispatch方法来触发
- modules:vuex允许将 store 分割成模块(module)。每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模块