目录
? ? ? ? 简单说都是用于页面初始化,土话说一进来页面,去进行数据加载或调用方法的
首先activated
钩子只适用于被 <keep-alive>
包裹的组件。对于不被 <keep-alive>
包裹的组件,activated
钩子不会被调用。你可能会说我的activated
?()所在方法页面没看见 <keep-alive>,那这个可能放在你父类的页面中你可以看看,比如
App.vue、main.vue等。
比如如我的下图
ComponentA
和 ComponentB
。ComponentA
是一个普通组件,而 ComponentB
是被 <keep-alive>
包裹的组件。我们将观察这两个组件如何响应 created
和 activated
钩子。
ComponentA
(普通组件):
ComponentA
时,它的 created
钩子会被调用。这是初始化数据或进行 API 调用的好时机。ComponentA
(比如切换到另一个组件)然后再回来,ComponentA
将被重新创建,created
钩子再次被调用。ComponentB
(被 <keep-alive>
包裹的组件):
ComponentB
时,它的 created
和 activated
钩子都会被调用。ComponentB
,它不会被销毁,而是保持在内存中。ComponentB
时,由于组件已经被创建,created
钩子不会被再次调用。但是,activated
钩子会被调用,因为这个组件是从 <keep-alive>
缓存中被重新激活的。<component-a v-if="isComponentAVisible"></component-a>
<!-- 在 App.vue 或其他父组件中 -->
<keep-alive>
<component-b v-if="isComponentBVisible"></component-b>
</keep-alive>
// ComponentA
export default {
created() {
console.log('ComponentA - created');
// 初始化操作,比如 API 调用
},
// ... 其他选项 ...
}
// ComponentB
export default {
created() {
console.log('ComponentB - created');
// 初始化操作,比如 API 调用
},
activated() {
console.log('ComponentB - activated');
// 每次从缓存中激活时要执行的操作
},
// ... 其他选项 ...
}
created
钩子:对于任何组件(无论是否被 <keep-alive>
包裹),created
钩子在组件创建时调用一次。activated
钩子:仅适用于被 <keep-alive>
包裹的组件。每次组件从缓存中激活时调用,即使组件已经被创建过。这个区别意味着 created
钩子是用于组件初始化时的操作,而 activated
钩子适用于那些需要在每次显示时刷新或更新的场景。
如果组件是第一次被创建,created
和 activated
钩子都会被调用,且 created
会先于 activated
调用。
------------------------------------------与正文内容无关------------------------------------
如果觉的文章写对各位读者老爷们有帮助的话,麻烦点赞加关注呗!作者在这拜谢了!
如果你需要Java 、Python毕设、网页和系统设计,还有你是刚入职的新手需要度过试用期。联系方式微信:Romanticl99 网名:A乐神