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

前端知识点---vue的声明周期(vue)

文章目录

  • 创建
  • 挂载
  • 更新
  • 销毁

vue的生命周期有四个阶段: 创建 挂载, 更新和销毁

创建

是vue组件从创建到准备渲染的过程
dom还没挂载到页面中
进行了初始化工作: 初始化数据(data,props) . 设置计算属性computed 初始化方法 methods 绑定事件watch
创建阶段的钩子函数beforeCreate 和created
前者是第一个生命钩子, 在它里面访问data他们的值是undefined
后者是第二个生命钩子, 此时完成了数据初始化, data, methods等已经可以用
但是dom并未挂载到页面上

<template>
    <h1>{{ wenzi }}</h1>
    <button @click="dianjiFn">点我</button>
</template>

<script>
export default {
    data() {
        return {
            wenzi: "点击按钮改变文字"
        }
    },

    methods: {
        dianjiFn() {
            this.wenzi = "改变文字了!"
        }
    },
    beforeCreate() {
        console.log("数据和事件没初始化");

    },

    created() {
        console.log('数据已经初始化, 但是dom还没挂载');

    }
}

</script>

<style></style>

挂载

vue实例已经准备好把组件挂载到页面, 模版被编译成虚拟DOM, 最终渲染到实际的dom中

  • beforeMount
    挂载之前调用, 没有插入dom
  • mounted
    vue实例挂载到页面后, dom已经被渲染到页面中, mounted钩子会被调用

更新

  • beforeUpdate
    当数据发生变化但 DOM 尚未重新渲染时,Vue 会调用 beforeUpdate 钩子。

典型应用: 可以在这个钩子中访问更新前的数据,但建议不要在这里修改数据,以免造成无限循环更新。

  • updated
    当数据更新并且视图已经重新渲染后,updated 钩子被调用。

典型应用: 可以执行基于最新 DOM 的操作,例如更新图表、重置某些 UI 状态等。

销毁

当组件不再需要时(例如,切换页面时),组件将会被销毁,相关的资源和事件监听也会被清理。
在vue2中:

  • beforeDestroy
    组件销毁前调用,此时组件的 DOM、数据和事件还没有被销毁。
    典型应用: 适合清理一些资源,如移除事件监听器、清除定时器等。

  • destroyed
    组件销毁后调用,此时 DOM、事件监听器和数据都已经清理完毕,组件的所有资源都被销毁。

在vue3中:

  • beforeUnmount:在组件卸载(销毁)之前调用,对应 Vue 2 的 beforeDestroy。
  • unmounted:在组件卸载(销毁)之后调用,对应 Vue 2 的 destroyed

vue2跟vue3在销毁过程中声明钩子不同的原因是
Vue 3 引入了 组合式 API,而 Vue 2 仅支持 选项式 API

典型应用: 可以用来做一些彻底清理的操作,确保组件销毁时没有内存泄漏。

在这里插入图片描述

相关文章:

  • RAGFLOW使用flask转发的open ai接口
  • C# 十六进制字符串转换为十进制
  • Error [ERR_REQUIRE_ESM]: require() of ES Module
  • 深入了解 DevOps 基础架构:可追溯性的关键作用
  • 深入理解 C++17 中的 std::atomic<T>::is_always_lock_free
  • 全面了解 Stanford NLP:强大自然语言处理工具的使用与案例
  • 在mfc中使用自定义三维向量类和计算多个三维向量的平均值
  • Alluxio Enterprise AI 3.5 发布,全面提升AI模型训练性能
  • UE 学习记录
  • 2025-02-20 学习记录--C/C++-PTA 7-27 冒泡法排序
  • PT8022W 单触控单输出 LED 调光 IC
  • uni-app小程序开发 基础知识2
  • python-leetcode 39.二叉树的直径
  • 第一篇:DeepSeek-R1 的诞生与背景
  • (蓝桥杯——10. 小郑做志愿者)洛斯里克城志愿者问题详解
  • kill -9 结束某个用户所有进程的方式-linux019
  • 来京东实习的个人收获与总结
  • 【大模型】DeepSeek-RAG 本地化部署与军事情报应用研究报告
  • spring中aop
  • Canvas进阶-2、可视化应用
  • 湖州通告13批次不合格食品,盒马1批次多宝鱼甲硝唑超标
  • 伊朗外长: 美伊谈判进展良好,讨论了很多技术细节
  • 伤者升至80人,伊朗港口爆炸源头或为“危险品和化学品仓库”
  • 苏迪曼杯即将在厦门打响,国羽向创纪录的14冠进军
  • 仅退款正式成历史?仅退款究竟该不该有?
  • 面对面倾听群众意见建议,及时回应解决群众“急难愁盼”问题!龚正在基层开展下访活动,调研城市更新