vue的生命周期详解

Vue 的生命周期是指 Vue 实例从创建到销毁的过程,总共分为八个阶段:创建前/后,载入前/后,更新前/后,销毁前/销毁后。每个阶段对应一个特定的钩子函数,这些钩子函数允许我们在 Vue 实例的不同状态下添加自定义代码。

以下是 Vue 的生命周期钩子函数的详细解释:

  1. beforeCreate(创建前)

在实例初始化之后,数据观测(data observer) 和 event/watcher 事件配置之前被调用。此时,组件的配置对象还未被创建,不能访问到 data、computed、watch、methods 上的方法和数据。

  1. created(创建后)

在这个阶段已经完成数据观测等初始化工作,但是尚未挂载 DOM,$el 属性目前不可见。此时可以访问到 data、computed 属性,但不能访问到 DOM。

  1. beforeMount(载入前)

在挂载开始之前被调用:相关的 render 函数首次被调用。此时虚拟 DOM 已经创建完成,即将开始渲染,但此时还没有挂载到页面上,所以无法看到渲染后的结果。

  1. mounted(载入后)

el 被新创建的 vm.el替换,并挂载到实例上去之后调用该钩子。如果root实例挂载了一个in−document元素,当mounted被调用时vm.el 也在文档内。此时,组件已经挂载到页面上,可以访问到 DOM 元素。

  1. beforeUpdate(更新前)

数据更新时调用,发生在虚拟 DOM 打补丁之前。可以在更新之前访问现有的 DOM,比如手动移除已添加的事件监听器。这里适合在更新之前访问现有的 DOM,比如手动移除已添加的事件监听器。

  1. updated(更新后)

由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。当这个钩子被调用时,组件 DOM 已经更新,所以你现在可以执行依赖于 DOM 的操作。然而在大多数情况下,你应该避免在此期间更改状态,因为这可能会导致更新无限循环。该钩子在服务器端渲染期间不被调用。

  1. beforeDestroy(销毁前)

实例销毁之前调用。在这一步,实例仍然完全可用。此时,Vue 实例指示的所有东西仍然可用,比如属性、方法、DOM 元素等。这是进行销毁前清理工作(比如:移除事件监听器、销毁定时器、解绑全局状态等)的好时机。

  1. destroyed(销毁后)

Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑,所有的事件监听器都会被移除,所有的子实例也会被销毁。此时,组件已被完全销毁,其所有的数据和事件监听器都已被移除,无法再访问。

通过合理利用这些生命周期钩子,我们可以更好地控制 Vue 组件的行为,并在不同的阶段执行特定的操作。

相关推荐
程序员爱技术1 小时前
Vue 2 + JavaScript + vue-count-to 集成案例
前端·javascript·vue.js
并不会2 小时前
常见 CSS 选择器用法
前端·css·学习·html·前端开发·css选择器
悦涵仙子2 小时前
CSS中的变量应用——:root,Sass变量,JavaScript中使用Sass变量
javascript·css·sass
衣乌安、2 小时前
【CSS】居中样式
前端·css·css3
兔老大的胡萝卜2 小时前
ppk谈JavaScript,悟透JavaScript,精通CSS高级Web,JavaScript DOM编程艺术,高性能JavaScript pdf
前端·javascript
低代码布道师2 小时前
CSS的三个重点
前端·css
耶啵奶膘4 小时前
uniapp-是否删除
linux·前端·uni-app
王哈哈^_^5 小时前
【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!
前端·人工智能·深度学习·yolo·目标检测·计算机视觉·pyqt
cs_dn_Jie6 小时前
钉钉 H5 微应用 手机端调试
前端·javascript·vue.js·vue·钉钉
开心工作室_kaic6 小时前
ssm068海鲜自助餐厅系统+vue(论文+源码)_kaic
前端·javascript·vue.js