Vue组件生命周期与钩子函数

2023-10-29

组件生命周期

​ 组件(组件是可复用的 Vue 实例)从创建到销毁的过程就是组件的生命周期,是一个时间段。

组件生命周期钩子函数

(vue3与vue2生命周期钩子函数略有不同,本文以vue2为主)

​ VUE 提供的生命周期钩子函数,会伴随组件的生命周期,自动按次序执行 ,这给了用户在不同阶段添加自己的代码的机会。生命周期钩子的 this 上下文指向调用它的 Vue 实例。

生命周期图示

在这里插入图片描述

创建阶段钩子函数

  1. beforeCreate()

    在组件实例初始化完成之后立即调用。

    此时刚刚初始化了一个vue空的实例对象,对象上只有默认的一些生命周期函数和默认事件,props,data和methods尚未初始化,处于不可用状态。

  2. created()

    在组件实例处理完所有与状态相关的选项后调用。

    组件的props,methods,data已创建好,可以使用,但组件的模板结构尚未生成 ,不能操作DOM,是可以发起Ajax请求的最早节点。

  3. beforeMount()

    在组件被挂载之前调用。

    内存编译好的HTML结构准备渲染到浏览器中,此时浏览器中还没有当前组件的DOM结构,无法操作DOM。

  4. mounted()

    在组件被挂载之后调用。

    已经将创建的HTML结构渲染到浏览器中,包含了当前组件的DOM结构,可以执行DOM操作的最早节点。

运行阶段钩子函数

  1. beforeUpdate()

    在组件即将因为一个响应式状态变更而更新其 DOM 树之前调用。

    此时页面中显示的数据还是旧的,但是data中的数据是最新的,页面尚未更新。这里会先根据data中最新的数据,在内存中,重新渲染出一份 最新的虚拟DOM树,当虚拟DOM树更新后,会把最新的虚拟DOM渲染到页面中去。完成从model => view的更新。

  2. updated()

    在组件因为一个响应式状态变更而更新其 DOM 树之后调用。

    此时页面和 data 数据已经保持同步,都是最新的。

销毁阶段钩子函数

  1. beforeDestroy()

    组件销毁前调用。

    此时data和所有的methods,以及过滤器,指令还处于可用状态,没有真正的销毁。

  2. destroyed()

    组件销毁后调用。

    该钩子被调用后,对应 Vue 实例的所有指令都被解绑,所有的事件监听器被移除,所有的子实例也都被销毁。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue组件生命周期与钩子函数 的相关文章

随机推荐

  • [Err] 1064 - You have an error in your SQL syntax; checkthe manual that corresponds...解决方法总结与分析

    Err 1064 You have an error in your SQL syntax checkthe manual that corresponds to your MySQL serverversion for the right
  • windows命令行获取文件夹内所有文件列表

    命令 dir dir 获取帮助信息结果如下 显示目录中的文件和子目录列表 DIR drive path filename A attributes B C D L N O sortorder P Q R S T timefield W X
  • cocos creator 两个刚体的碰撞检测

    想做玩家和障碍物的碰撞阻拦 需要给玩家和障碍物添加刚体 但是添加之后还是会穿透 百度后发现玩家的移动不能通过设置坐标实现的 必须要设置刚体速度的方式来实现玩家移动 1 给玩家 障碍物添加刚体 会看到添加了RigidBody和PhysicsB
  • 启动sonarqube 报错 AccessDeniedException: /opt/module/sonar/sonarqube-7.5/temp/conf/es/elasticsearch.yml

    报错信息 WrapperSimpleApp Encountered an error running main java nio file AccessDeniedException opt module sonar sonarqube 7
  • vue的拖拽插件: vue.draggable

    中文文档地址 vue draggable中文文档 itxst comVue Draggable是一款基于Sortable js实现的vue拖拽插件 支持移动设备 拖拽和选择文本 智能滚动 可以在不同列表间拖拽 不依赖jQuery为基础 vu
  • 2023-2024最新python毕业设计选题推荐大全

    文章目录 0 前言 1 python 算法类 毕设选题 2 python 数据挖掘 毕设选题 3 python 大数据处理 云计算 区块链 毕设选题 4 python 网络安全 毕设选题 5 python 游戏设计 动画设计类 毕设选题 适
  • LeetCode 7. 整数反转

    题目链接 7 整数反转 注意题目已经更改为不允许存储 64 位整数 有符号或无符号 class Solution public int reverse int x int total 0 while x if total gt 0 tota
  • H5项目怎么打包成APP

    文章目录 前言 一 新建5 APP项目 二 删除不需要的文件 三 将H5打包的文件拷贝到当前目录下 四 配置APP 五 发行 云打包 六 安装apk 总结 前言 开发uni app的编辑器HBuilderX可以将H5项目打包成APP 相信很
  • 牛客SQL大厂面试真题目录

    1 某音短视频 SQL156 各个视频的平均完播率 SQL157 平均播放进度大于60 的视频类别 SQL158 每类视频进一个月的转发量 率 SQL159 每个创作者每月的涨粉率及截止当前的总粉丝量 SQL160 国庆期间每类视频点赞量和
  • etc的常见算法_ETC面试题总结.doc

    ETC面试题总结 ETC 面试 ETC 面试1 一 测试2 二 UNIX4 三 Oracle7 四 智能网方面10 五 C 方面11 六 网络13 七 操作系统16 八 数据结构17 九 其它19 测试 软件在开发过程中的测试流程 讲一下软
  • Sublime Text 3配置Go语言开发环境

    Sublime Text 3配置Go语言开发环境 1 Go语言环境搭建 2 GoSublime安装和配置 2 1 安装步骤 2 2 代码开发 2 3 编译运行 1 Go语言环境搭建 本篇博文是在读者Go自身环境已经搭好 Sublime Te
  • 华为OD机试 - 求最小步数(Java)

    题目描述 求从坐标零点到坐标点n的最小步数 一次只能沿横坐标轴向左或向右移动 2 或 3 注意 途径的坐标点可以为负数 输入描述 坐标点n 输出描述 输出从坐标零点移动到坐标点n的最小步数 备注 1 lt n lt 10 9 用例 输入 4
  • 解决Shiro jwt并发刷新token问题

    使用shiro jwt做应用系统的权限校验 网上通用的方式是这样的 在用户登录时候会生成两份token 一份AccessToken用于返回给前端 前端带上这个令牌去请求后台接口 通常过期时间较短5分钟左右 一份RefreshToken放在R
  • GPU、CUDA和cuDNN分别是什么,之间又有什么关系?

    文章目录 GPU CUDA和cuDNN分别是什么 之间又有什么关系 1 GPU 2 CUDA 3 cuDNN GPU CUDA和cuDNN分别是什么 之间又有什么关系 1 GPU GPU 图形处理单元 Graphics processing
  • 一张图看懂 USDT三种类型地址 Omni、ERC20、TRC20的区别

    USDT是当前实用最广泛 市值最高的稳定币 它是中心化的公司Tether发行的 在今年的4月17日之前 市场上存在着2种不同类型的USDT 4月17日又多了一种波场TRC20协议发行的USDT 它们各自有什么区别呢 哪个转账最快到账 哪种最
  • 【ShaderToy】基础篇之谈谈点、线的绘制

    写在前面 写前面一篇的时候 发现还是不够基础 因此打算增加几篇基础篇 从点线面开始 希望可以更好理解 其实用Pixel Shader的过程很像在纸上绘画的过程 屏幕上的每一个像素对应了纸上的一个方格 如果你愿意 你甚至可以一个个判断像素的位
  • 【KingFusion】如何设置日期控件默认选择最近24小时

    哈喽 大家好 我是雷工 本篇记录一个日期时间控件的使用过程 以下为应用笔记 1 问题描述 KingFusion中 对于一些特定的查询情况下 需要设置日期时间控件默认显示前一天的日期时间到当前时间24小时内的选择范围 但是由于考虑到每月的天数
  • Amazon Fargate 使用 Seekable OCI 实现更快的容器启动速度

    虽然在部署和扩展应用程序时 使用容器进行开发的方式已日趋流行 但仍有一些领域可以改进 扩展容器化应用程序的主要问题之一是启动时间长 尤其是在纵向扩展期间 需要添加较新的实例 此问题可能会对客户体验 例如 当网站需要横向扩展以提供额外流量时
  • cross-tissue 成纤维细胞比例.r

    getwd setwd G lung fibrosis mouse stable state mouse ssfibro readRDS Mouse SS Fibro RDS library Seurat head mouse ssfibr
  • Vue组件生命周期与钩子函数

    组件生命周期 组件 组件是可复用的 Vue 实例 从创建到销毁的过程就是组件的生命周期 是一个时间段 组件生命周期钩子函数 vue3与vue2生命周期钩子函数略有不同 本文以vue2为主 VUE 提供的生命周期钩子函数 会伴随组件的生命周期