这篇文章主要为大家展示了“Vue2.0路由开启keep-alive时需要注意的地方有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue2.0路由开启kee
这篇文章主要为大家展示了“Vue2.0路由开启keep-alive时需要注意的地方有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue2.0路由开启keep-alive时需要注意的地方有哪些”这篇文章吧。
Vue2.0 做应用必有的需求就是页面数据需要做缓存,不用每次进入页面都要把数据重新请求一遍,每次页面切换都有段等待数据相应时间,这个用户体验可想有多么蛋疼,所以页面缓存是必要的,啥时候需要更新页面数据呢?可以监听状态变化,或者是手动下拉刷新重新请求数据,酱紫,我想用户体验会做的更好。
keep-alive的作用以及好处
在做电商有关的项目中,当我们第一次进入列表页需要请求一下数据,当我从列表页进入详情页,详情页不缓存也需要请求下数据,然后返回列表页,这时候我们使用keep-alive来缓存组件,防止二次渲染,这样会大大的节省性能。
废话不多说直接上码,一般是在 src/App.vue 设置开启 keep-alive 实现页面数据缓存:
<template>
<keep-alive>
<router-view></router-view>
</keep-alive>
</template>
列举几个常用的 hook 方法,如下:
export default {
data() {
return {
}
},
created: function() {
console.log("the hook of created is done!");
},
mounted: function() {
console.log("the hook of mounted is done!");
},
activated: function() {
console.log("the hook of activated is done!");
},
deactivated: function() {
console.log("the hook of deactivated is done!");
}
}
首次进来 hook 的触发顺序 created-> mounted-> activated,退出时触发 deactivated:
// 控制台打印结果
the hook of created is done!
the hook of mounted is done!
the hook of activated is done!
the hook of deactivated is done!
二次进来 hook 只触发 activated,退出时触发 deactivated:
// 控制台打印结果
the hook of activated is done!
the hook of deactivated is done!
所以这就是为什么有些人开启 keep-alive 之后,created 和 mounted 注册的 pageInt 方法不触发的原因了,因为 keep-alive 把它们屏蔽了,也就是把数据缓存起来,所以不再请求。
如果你的某些页面一定要实时请求,你可以直接在 activated 这个 hook 做 pageInt,就不要在 created 和 mounted 上面注册 pageInt 方法了。
还有你可以选择性 pageInt,比如监听状态变化,包括但不限于监听路由的变化,某参数的变化,某时间节点的变化等等。
以上是“Vue2.0路由开启keep-alive时需要注意的地方有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网JavaScript频道!
--结束END--
本文标题: Vue2.0路由开启keep-alive时需要注意的地方有哪些
本文链接: https://www.lsjlt.com/news/78698.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-01-12
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0