vue组件的生命周期

vue组件的生命周期

1、组件的生命周期

  • 生命周期,即从被创建到运行再到销毁的一个周期
  • 在不同的阶段,会自动运行不同的函数(如果没有写默无操作),被称为生命周期钩子,让开发者有机会在特定阶段运行自己的代码。
  • 由vue框架提供的内置函数,会伴随着组件的生命周期,自动按次序执行

2、生命周期函数

  • 创建阶段:
    • beforeCreate:实例初始化完成、props 解析之后、data() 和 computed 等选项处理之前立即调用
    • created
      • 响应式数据、计算属性、方法和侦听器已经初始化完成;此时挂载阶段还未开始
      • 可以在这个阶段调用methods中的方法,请求服务器数据;把请求的数据,转到data中,供template模板渲染的时候用(常用
    • beforeMount:已经完成了其响应式状态的设置,但还没有创建 DOM 节点。它即将首次执行 DOM 渲染过程。
    • mounted
      • 所有同步子组件都已经被挂载,自身的 DOM 树已经创建完成并插入了父容器中
      • 如果要操作DOM元素,最早只能在mounted阶段执行(常用
  • 组件运行阶段:
    • beforeUpdate:
      • 在组件即将因为一个响应式状态变更而更新其 DOM 树之前调用(可以理解为当页面的数据即将发生改变之前会被调用)
      • 可以用来在 Vue 更新 DOM 之前访问 DOM 状态。在这个钩子中更改状态也是安全的
    • updated
      • 组件因为一个响应式状态变更而更新其 DOM 树之后调用
      • 当数据变化之后,为了操作最新的dom结构可以调用(常用
      • 注意:如果你需要在某个特定的状态更改后访问更新后的 DOM,请使用 nextTick() 作为替代;不要在 updated 钩子中更改组件的状态,这可能会导致无限的更新循环
  • 组件的销毁阶段:
    • beforeUnmount:在一个组件实例被卸载之前调用
    • unmounted:
      • 在一个组件实例被卸载之后调用
      • 可以在这个钩子中手动清理一些副作用,例如计时器、DOM 事件监听器或者与服务器的连接。

3、生命周期图示

更多信息可以在vue.js官方文档中查看:vue.js生命周期钩子
下面是vue.js官方文档中的生命周期图示:可以结合图片,更好的理解生命周期函数
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue 组件生命周期是指一个组件从创建到销毁的整个阶段。Vue 框架提供了一系列内置的生命周期函数,这些函数会按照特定的顺序自动执行。组件生命周期函数可以分为三类:创建阶段、运行阶段和销毁阶段。 在创建阶段,组件会按照以下顺序执行一系列生命周期函数: - beforeCreate:在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。 - created:在实例创建完成后被调用。此时实例已经完成以下的配置:数据观测 (data observer),property 和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见。 - beforeMount:在挂载开始之前被调用:相关的 render 函数首次被调用。 - mounted:el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。 在运行阶段,组件会执行以下生命周期函数: - beforeUpdate:数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。可以在该钩子中对更新之前的状态进行额外的操作。 - updated:由于数据更改导致虚拟 DOM 重新渲染和打补丁后调用。调用时,组件 DOM 已经更新,所以你现在可以执行依赖于 DOM 的操作。 在销毁阶段,组件会执行以下生命周期函数: - beforeDestroy:实例销毁之前调用。在这一步,实例仍然完全可用。 - destroyed:Vue 实例销毁后调用。此时,Vue 实例的所有指令都已解绑,所有的事件监听器都已移除,所有的子实例也都被销毁。 这些生命周期函数的执行顺序构成了 Vue 组件的完整生命周期。在不同的生命周期函数中,我们可以执行一些特定的操作,例如初始化数据、获取远程数据、处理事件等。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Vue组件生命周期](https://blog.csdn.net/m0_61612505/article/details/124318968)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Vue----组件生命周期](https://blog.csdn.net/m0_53022813/article/details/124411563)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@贾鲍鱼[太阳]

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值