当前位置: 首页 > news >正文

vue—生命周期

生命周期是组件从创建到销毁的一系列钩子函数,可在特定的时间状态下执行代码。这些钩子函数提供了对组件生命周期的直接访问,使开发者可在不同的阶段执行自己的逻辑。

一、基本内容

vue2和vue3的生命周期有所不同,但基本概念一致。

阶段vue2vue3触发时机特点
创建阶段beforeCreatebeforeCreate实例初始化之后,数据观测和事件配置之前无法访问data、computed、methods等
createdcreated实例创建完成后可以访问数据,未挂载DOM
挂载阶段beforeMountbeforeMount挂载开始之前render函数首次被调用,已生成虚拟DOM,未渲染
mountedmounted实例被挂载到DOM之后可以访问真实DOM,一般在这一阶段请求加载初始数据
更新阶段beforeUpdatebeforeUpdate数据变化导致DOM重新渲染之前可以在更新前访问现有DOM状态
updatedupdatedDOM重新渲染后避免在这一阶段修改数据,可能导致无限循环
卸载阶段beforeDestroybeforeUnmount实例卸载之前清理前的最后时机
destroyedunmounted实例卸载完成之后清除计时器、取消订阅、解绑监听事件等

二、setup

setup是vue3组合式API(Composition API)的入口函数,它在组件实例创建之前执行,是组合式API的核心。

setup本身相当于:beforeCreate+created。

当setup与beforeCreate/created同时使用时的执行顺序:setup—>beforeCreate—>created。

常见使用方式:<script setup>语法糖

在setup中使用生命周期函数时需要加前缀on:mounted——onMounted、updated——onUpdated等。

三、父子组件生命周期执行顺序

挂载阶段:父 beforeCreate → 父 created → 父 beforeMount → 子 beforeCreate

子 created → 子 beforeMount → 子 mounted → 父 mounted

更新阶段:父 beforeUpdate → 子 beforeUpdate → 子 updated → 父 updated

卸载阶段:父 beforeUnmount → 子 beforeUnmount → 子 unmounted → 父 unmounted

四、keep-alive

<keep-alive>是Vue 内置的一个抽象组件,用于缓存不活动的组件实例,而不是销毁它们。它可以保留组件状态,避免重复渲染,提升性能。

<keep-alive> 包裹的组件会增加activateddeactivated的钩子函数。

activated:组件被激活(从缓存中被恢复)时触发

deactivated:组件被停用(进入缓存)时触发

keep-alive包裹的组件触发顺序:

1)首次进入:onMounted→onActivated

2)切换到其他页面:onDeactivated

3)再次进入:onActivated(不会再触发onMounted)

http://www.cnnetsun.cn/news/3114781.html

相关文章:

  • 怎样高效获取网络媒体资源:开源工具的智能跨平台解决方案
  • 一灯大师以专业工艺打造坦克500灯光升级标杆案例
  • 装备制造行业PLM软件系统最新厂商盘点,助力行业数字化转型
  • 零基础Redis单服务安装教程(Windows/macOS/Linux全系统)
  • 深度解析Obsidian Jupyter插件:在笔记中无缝执行Python代码的3种实战方法
  • 在M1 Mac上运行Android模拟器的完整指南:告别卡顿,享受原生性能
  • 3步搭建智能家居系统:Home Assistant操作系统完整指南
  • 宝宝英语启蒙0岁就能用,系统AI体系学听说,磨耳朵亲子互动首选app
  • 不止店推助手!更多AI功能,东棠智慧门店等你来解锁
  • YOLOv10模型改进-Backbone改进-第53篇: YOLOv10改进策略【Backbone】| VGG16 Backbone替换
  • 百亿连盟Token代理怎么申请?普通人先看懂这几个问题
  • 【SRC 掘金干货】零基础新人挖洞必备指南(2026 最新),全覆盖平台介绍、合规规则、完整落地实操流程
  • 【OpenHarmony/HarmonyOs 】政治学习 App 的人脸识别开放能力、端侧 AI 与元服务集成思路
  • Windows 10臃肿软件清理终极指南:如何一键移除预装应用提升系统性能
  • SysDVR终极指南:如何实现Switch游戏画面高清投屏与录制
  • 智能画中画视频助手:Chrome扩展让多任务处理更高效
  • 计算机毕业设计之基于Java的NBA球队管理系统
  • 09405黄大年茶思屋榜文94期 第5题 数字型LCoS快速切换Flicker抑制技术
  • 我在事业单位能不能考?
  • DoFollow NoFollow 外链 区别:写错这1个代码,网站可能直接0权重
  • 如何实现Steam饰品交易自动化监控:智能挂刀行情站完整指南
  • Linux命令实战:从ps到grep,一篇搞定常用工具
  • 10款制造业官网建站系统实测盘点!内外贸工厂建站工具怎么选?
  • LangChain、LangGraph、LangSmith、LangFlow 四大工具定位与协同实战
  • 哈夫曼编码的手工推演与效率计算(P124302152高宗悦)
  • 警惕Codex幻觉:AI编程的边界实测
  • 实验室的“隐形成本”清单:算完这笔账,我们换掉了所有供应商
  • Ollama迁移到vLLM:高并发AI服务生产化重构指南
  • 如何用5个步骤让OneNote变身专业Markdown编辑器?[特殊字符]
  • 使用codegraph实现项目图谱化