Vue created()和 activated()区别和作用调用顺序

本文主要是介绍Vue created()和 activated()区别和作用调用顺序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

作用

区别

举个例子

调用顺序


作用

        简单说都是用于页面初始化,土话说一进来页面,去进行数据加载或调用方法的

区别

首先activated 钩子只适用于被 <keep-alive> 包裹的组件。对于不被 <keep-alive> 包裹的组件,activated 钩子不会被调用。你可能会说我的activated ()所在方法页面没看见 <keep-alive>,那这个可能放在你父类的页面中你可以看看,比如App.vue、main.vue等。

比如如我的下图

举个例子

ComponentAComponentBComponentA 是一个普通组件,而 ComponentB 是被 <keep-alive> 包裹的组件。我们将观察这两个组件如何响应 createdactivated 钩子。

  1. ComponentA(普通组件):

    • 当你首次访问 ComponentA 时,它的 created 钩子会被调用。这是初始化数据或进行 API 调用的好时机。
    • 如果你离开 ComponentA(比如切换到另一个组件)然后再回来,ComponentA 将被重新创建,created 钩子再次被调用。
  2. ComponentB(被 <keep-alive> 包裹的组件):

    • 当你首次访问 ComponentB 时,它的 createdactivated 钩子都会被调用。
    • 然后,如果你离开 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 钩子适用于那些需要在每次显示时刷新或更新的场景。

调用顺序

如果组件是第一次被创建,createdactivated 钩子都会被调用,且 created 会先于 activated 调用。

------------------------------------------与正文内容无关------------------------------------
如果觉的文章写对各位读者老爷们有帮助的话,麻烦点赞加关注呗!作者在这拜谢了!

如果你需要Java 、Python毕设、网页和系统设计,还有你是刚入职的新手需要度过试用期。联系方式微信:Romanticl99 网名:A乐神

这篇关于Vue created()和 activated()区别和作用调用顺序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/619987

相关文章

Spring Bean初始化及@PostConstruc执行顺序示例详解

《SpringBean初始化及@PostConstruc执行顺序示例详解》本文给大家介绍SpringBean初始化及@PostConstruc执行顺序,本文通过实例代码给大家介绍的非常详细,对大家的... 目录1. Bean初始化执行顺序2. 成员变量初始化顺序2.1 普通Java类(非Spring环境)(

C++中detach的作用、使用场景及注意事项

《C++中detach的作用、使用场景及注意事项》关于C++中的detach,它主要涉及多线程编程中的线程管理,理解detach的作用、使用场景以及注意事项,对于写出高效、安全的多线程程序至关重要,下... 目录一、什么是join()?它的作用是什么?类比一下:二、join()的作用总结三、join()怎么

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

JAVA覆盖和重写的区别及说明

《JAVA覆盖和重写的区别及说明》非静态方法的覆盖即重写,具有多态性;静态方法无法被覆盖,但可被重写(仅通过类名调用),二者区别在于绑定时机与引用类型关联性... 目录Java覆盖和重写的区别经常听到两种话认真读完上面两份代码JAVA覆盖和重写的区别经常听到两种话1.覆盖=重写。2.静态方法可andro

C++中全局变量和局部变量的区别

《C++中全局变量和局部变量的区别》本文主要介绍了C++中全局变量和局部变量的区别,全局变量和局部变量在作用域和生命周期上有显著的区别,下面就来介绍一下,感兴趣的可以了解一下... 目录一、全局变量定义生命周期存储位置代码示例输出二、局部变量定义生命周期存储位置代码示例输出三、全局变量和局部变量的区别作用域

MyBatis中$与#的区别解析

《MyBatis中$与#的区别解析》文章浏览阅读314次,点赞4次,收藏6次。MyBatis使用#{}作为参数占位符时,会创建预处理语句(PreparedStatement),并将参数值作为预处理语句... 目录一、介绍二、sql注入风险实例一、介绍#(井号):MyBATis使用#{}作为参数占位符时,会

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

Javaee多线程之进程和线程之间的区别和联系(最新整理)

《Javaee多线程之进程和线程之间的区别和联系(最新整理)》进程是资源分配单位,线程是调度执行单位,共享资源更高效,创建线程五种方式:继承Thread、Runnable接口、匿名类、lambda,r... 目录进程和线程进程线程进程和线程的区别创建线程的五种写法继承Thread,重写run实现Runnab

C++中NULL与nullptr的区别小结

《C++中NULL与nullptr的区别小结》本文介绍了C++编程中NULL与nullptr的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编... 目录C++98空值——NULLC++11空值——nullptr区别对比示例 C++98空值——NUL