HTML部分:
include: 字符串或正则表达式。只有匹配的组件会被缓存。
exclude: 字符串或正则表达式。任何匹配的组件都不会被缓存。
值为组件的name
<keep-alive exclude="book">
<router-view></router-view>
</keep-alive>
js部分
.....
created: function () {
console.log(1)
},
mounted: function () {
console.log(2)
},
activated: function () {
console.log(3)
},
deactivated: function () {
console.log(4)
}
.....
- 什么时候获取数据
当引入keep-alive的时候,页面第一次进入,钩子的触发顺序created-> mounted-> activated,退出时触发deactivated。当再次进入(前进或者后退)时,只触发activated。
所以,应该activated中留一份数据获取的代码,或者不要created部分,直接将created中的代码转移到activated中
-
$route
中的数据获取
使用了keep-alive后数据需要进入页面在activated中再次获取,才能达到更新的目的
activated() {
this.bookid = this.$route.query.bookid
}
网友评论