vue组件的生命周期详细到胃

44 篇文章 0 订阅

组件的生命周期

前言在这里插入图片描述

这篇文章介绍vue组件组件的生命周期!详细到牙齿,看完不会你打我。哈哈哈,开玩笑的,不多说,上刺刀!!

1. 组件运行的过程

在这里插入图片描述

组件的生命周期指的是:组件从创建、运行(渲染)、销毁的整个过程,强调的是一个时间段。

2. 如何监听组件的不同时刻

在这里插入图片描述

vue 框架为组件内置了不同时刻的生命周期函数,生命周期函数会伴随着组件的运行而自动调用。例如:

① 当组件在内存中被创建完毕之后,会自动调用 created 函数;

② 当组件被成功的渲染到页面上之后,会自动调用 mounted 函数;

③ 当组件被销毁完毕之后,会自动调用 unmounted 函数;

组件中代码如下,这样在父组件上使用这个子组件的时候就会调用这三个生命周期函数了。

<template>
  <h2>life组件</h2>
</template>

<script>
export default {
  name:'life',
  created(){
    console.log('组件创建了')
  },
  mounted() {
    console.log('组件渲染到页面上了')
  },
  unmounted() {
    console.log('组件被销毁了')
  },
}
</script>

3. 如何监听组件的更新

当组件的 data 数据更新之后,vue 会自动重新渲染组件的 DOM 结构,从而保证 View 视图展示的数据和Model 数据源保持一致。

当组件被重新渲染完毕之后,会自动调用 updated 生命周期函数。

<template>
  <h2>life组件--{{ count }}</h2>
<button @click="count += 1">+1</button>
</template>

<script>
export default {
  name:'life',
    data(){
        return{
            count:0
        }
    }
  updated() {
    console.log('组件重新渲染完毕了')
  },
}
</script>

当点击+1 时候,count加1,数据自动渲染到页面,然后每次渲染完毕会调用 updated 函数。

4. 组件中主要的生命周期函数

在这里插入图片描述

注意:在实际开发中,created 是最常用的生命周期函

5. 组件中全部的生命周期函数

全部的生命周期函数:
在这里插入图片描述

疑问:为什么不在 beforeCreate 中发 ajax 请求初始数据?

在这个阶段无法请求data里面的数据,没法让组件去挂载和使用,只能在下一个阶段的 created 中发起 ajax 请求。

6. 完整的生命周期图示

可以参考 vue 官方文档给出的“生命周期图示”,https://www.vue3js.cn/docs/zh/guide/instance.html#生命周期图示,进一步理解组件生命周期执行的过程:

image-20220817170153106

写在最后

✨个人笔记博客✨

星月前端博客
http://blog.yhxweb.top/

✨原创不易,还希望各位大佬支持一下

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️评论,你的意见是我进步的财富!

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
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 ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

星月前端

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

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

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

打赏作者

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

抵扣说明:

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

余额充值