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

VUE3生命周期钩子

生命周期

vue2的生命周期钩子

  • beforeCreate:开始初始化事件和生命周期,但还没有data、methods、computed、watch属性,也就是vue实例的挂载元素$el和数据对象data都为undefined,还未初始化。
    created:实完成数据挂载、事件绑定等;vue实例的数据对象data有了,dom树还未挂载。
    载入前
  • beforeMount:在挂载开始之前被调用,相关的 render 函数首次被调用,即编译模板准备渲染。
  • mounted:完成实例挂载,数据完成双向绑定;实际的DOM元素可用。
  • beforeUpdate:组件数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。可以在这个钩子中进一步地更改状态,不会触发重新渲染。
  • updated:将data中的值更新到页面中;此时,组件 DOM 已经更新,绝对不要在这里再更新data。
  • beforeDestroy:在实例销毁之前调用。这一步,实例仍然是完全正常的。
  • destroyed:销毁后解绑所有东西;清除watcher、监听器、子组件实例等。

vue3的生命周期钩子

  • setup: 用于初始化组件数据和方法。它是组件实例化的早期阶段,在 beforeCreate 和 created 之间调用。
  • onBeforeMount: 在组件被挂载之前被调用;
  • onMounted: 相当于 Vue 2 的 mounted,在组件初次渲染完毕并创建DOM节点(以及所有同步的子组件都已挂载完,不含异步组件)之后被调用;
  • onBeforeUpdate: 在数据变化(响应式状态变更)时更新DOM树之前调用;
  • onUpdated:在数据变化(响应式状态变更)时更新DOM树之后调用;
  • onBeforeUnmount: 相当于 Vue 2 的 beforeDestroy,在组件实例被卸载之前调用;
  • onUnmounted: 相当于 Vue 2 的 destroyed,通常在这个钩子里处理一些副作用,例如计时器、DOM监听、与服务器的连接等。
  • onErrorCaptured: 捕获组件或子组件树中的错误,类似于 Vue 2 的 errorCaptured。
  • onRenderTracked:注册一个调试钩子,仅在开发模式下有效,当组件渲染过程中追踪到响应式依赖时调用。
  • onRenderTriggered:注册一个调试钩子,仅在开发模式下有效,当响应式依赖的变更触发了组件渲染时调用。
  • onActivated:如果组件实例是 <KeepAlive> 缓存树的一部分,当组件被插入到 DOM 中时调用。这个钩子在服务器端渲染期间不会被调用
  • onDeactivated:如果组件实例是 <KeepAlive> 缓存树的一部分,当组件从 DOM 中被移除时调用。这个钩子在服务器端渲染期间不会被调用
  • onServerPrefetch:异步函数,在组件实例在服务器上被渲染之前调用。

一、为什么vue3中没有 beforeCreated、created ?
vue3中并没有去掉 beforeCreated、created钩子,只是用 setup函数来代替created来初始化 data、methods、computed。也就是说在setup中,等同于组件实例的创建过程,因此可以将 setup理解为 beforeCreated、created 钩子。

二、为什么vue3的组合式API 更倾向使用 onMouted?
主要原因是可读性和可维护性。在组合式 API 中,可以将相关逻辑分组,并且更清晰地表达每块逻辑的依赖关系。虽然可以在setup 中直接执行异步操作来替代created 钩子的功能,但是使用onMounted来加载数据,确保只在 DOM 渲染之后加载,有助于避免出现和 DOM 操作相关的错误。

在这里插入图片描述


http://www.kler.cn/news/283118.html

相关文章:

  • 微软在Edge浏览器中引入本地AI模型;苹果将于9月10日发布iPhone 16系列
  • Java 入门指南:初识 Java NIO
  • cmake,make,makefile之间的关系
  • cppbase阶段汇总
  • 零售数字化:基于会员、商品和导购的智能决策
  • 提升你的校招简历:推荐高质量C++项目示例!
  • 【openwrt-21.02】T750 openwrt-21.02 Linux-5.4.238 input子系统----gpio-keys实现分析
  • 机器学习在医学中的应用
  • 自制深度学习推理框架之卷积和池化算子的设计与实现
  • 力扣题/图论/实现 Trie (前缀树)
  • 【Redis】Redis 持久化 -- RDB AOF
  • 02.标准化编程规范
  • 依赖注入:原则、实践与Spring中的应用
  • 高级java每日一道面试题-2024年8月26日-框架篇[Web篇]-如何查询网站在线人数?
  • 【并发编程】从AQS机制到同步工具类
  • SpringBoot依赖之Spring Data Redis的功能抽离公共服务
  • Logrus IT的质量评估门户如何提高游戏本地化质量:案例研究
  • 学习日志8.21--防火墙NAT
  • SEO之网站结构优化(十三-网站地图)
  • XSS-Jquery.html()+DOM破坏
  • Vue(六) render函数、Vue.config.js配置文件,ref属性,props配置项、mixin混入、插件、scoped
  • 【Docker】容器挂载文件修改后 Commit 新镜像,挂载文件不会更新
  • MariaDB 和 MySQL 版本关联
  • 低代码集成中心:简化复杂流程的智能解决方案
  • vue前端获取不同的客户端mac地址(最详细,避免踩坑)
  • kafak集群搭建-基于kRaft方式
  • React Hooks的优势
  • 结合代码详细讲解DDPM的训练和采样过程
  • 【Java设计模式】Bridge模式:在Java中解耦抽象与实现
  • 2024年程序员金九银十面试宝典持续更新中.....