vue使用总结(3)生命周期篇

【Vue篇】2025 Vue3高频面试题(一) vue3新特性、vue3为何要用proxy实现双向绑定、vue3与vue2生命周期的区别 历时半年自己整理高频前端面试题,力求精简、实用、高频。笔记中的亮色为重点,有些内容为了便于理解,将工作中经常用的知识点与面试题相结合。摒弃了一些工作中不实用的知识点。建议大家手敲代码加深理解,助你一臂之力! 阅读详情

工作之初使用的angularjs框架,从那时开始数据双向绑定的思想就深深的吸引了我。那是刚入门并没有深究angularjs实现双向绑定的原理。所以至今对angularjs也是一知半解。在工作半年左右接触了vue,开始使用它作为主要的开发框架。使用至今已有两年多了,期间也对其源码进行过研究。vue的各种理念也都比较了解。最近有空总结下自己对vue各个知识点的理解。
vue生命周期示例图
这里写图片描述
上图描述了vue 的生命周期,下面我们根据此图来详细了解下vue从初始化到结束都做了些什么。

1. 创生created
对vue熟悉的人都知道,vue是封装在vue的函数中的,

function Vue (options) {
  if (process.env.NODE_ENV !== 'production' &&
    !(this instanceof Vue)) {
    warn('Vue is a constructor and should be called with the `new` keyword')
  }
  this._init(options)//初始化开始
}

当我new vue时候,此时vue开始他的生命旅程。此时调用init函数,初始化vue的事件,props,methods,data,computed和watch
2. 挂载mount
数据初始结束后,如果可以找到el则开始挂载DOM元素。
开始编译:此时判断是否有render函数,如果有就不做处理直接执行mount.call(this, el, hydrating)。如果没有render函数,则获取template,template可以是#id、模板字符串、dom元素,如果没有template,则获取el以及其子内容作为模板,然后开始编译模板,编译完成调用render函数生成DOM元素。现在我们可以看到页面显示的内容了。
3. 更新update
页面绑定的数据修改后,更新dom结构,即vdom的diff算法。Vue和React在更新dom时,使用的算法相同,都是基于snabbdom。
update中最终要的一环便是数据patch,vue中调用patch方法来分析DOM元素的结构变化。下面简述下patch流程:

return function patch (oldVnode, vnode, hydrating, removeOnly, parentElm, refElm) {
    ...

    let isInitialPatch = false
    const insertedVnodeQueue = []

    if (isUndef(oldVnode)) {
     ...
    } else {
      // oldValue不是VNode,而是真实的dom元素
      const isRealElement = isDef(oldVnode.nodeType)
      if (!isRealElement && sameVnode(oldVnode, vnode)) {//判断两个vnode可不可以复用为一个节点
        // patch existing root node
        patchVnode(oldVnode, vnode, insertedVnodeQueue, removeOnly)//执行patchVnode方法
      } else {
      //
    }
    invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch)
    return vnode.elm
  }

vue中的update是vue知识点中比较重要的知识,此生命周期中最重要的是diff算法。由于内容较多这里就不详述,有兴趣的小伙伴可以去了解下vue源码分析

4. 结束destroy
任何事物有始必有终,vue当然也不例外。在vue中destroy用来结束他的生命周期,当离开当前组件时会自动触发destroy,当然我们也可以手动触发。
手动出需要注意:destroy会完全销毁一个实例。清理它与其它实例的连接,解绑它的全部指令及事件监听器。也就是说他不会删除页面的DOM元素。

金九银十,九月已过。Vue这些知识你还不懂?(面试篇1.5W字) 本篇博客主要记录Vue面试时常见的一些题目,主要有:基础题目,常规题目,生命周期,Vuex,路由,进阶题目。如果感觉对自己有帮助,不妨点个赞,或者加群643229703,一起交流最新校招题目和面经,互帮互助,直取offer 阅读详情

相关推荐

STM32F103C8T6+HX711实战:从零打造智能体重秤(附OLED显示与语音播报)

本文详细介绍了基于STM32F103C8T6微控制器和HX711称重模块,从零构建智能体重秤的完整实战教程。内容涵盖硬件选型、系统架构、驱动编写、数据滤波校准算法,并实现了OLED显示与语音播报功能。该项目是嵌入式学习的综合性实践,尤其适合作为毕业设计课题,帮助开发者掌握传感器应用、数据处理及人机交互等核心技能。

weixin_28285943的博客 517

vue3 第三幕之【生命周期函数】(挂载篇+更新篇+卸载篇)

关于vue3生命周期挂载 更新 卸载过程的详细分析总结

XSL_HR的博客 5885

运放+三极管恒流源电路设计实战:从原理到仿真一步到位(附Multisim文件)

本文详细解析了运放与三极管构建恒流源电路的核心原理,重点阐述了负反馈机制如何实现精准的电流控制。通过Multisim仿真实战,从电路搭建、参数计算到负载调整率与动态响应分析,一步步指导设计过程,并提供常见故障的调试技巧与PCB设计要点,帮助工程师从理论平稳过渡到可靠实践。

7z8x2c4v6b9的博客 711

VUE生命周期详解

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例

喵喵喵的博客 1087

嵌入式设备系统日志记录及调试技巧_嵌入式日志系统(1),如何成为杰出的程序员

这里面我使用的芯片为哈弗体系,全局常量存储编译器默认分配在flash,需要注意如果使用片内flash时,注意存储调试等级的flash块不要与代码区重合,要不然修改调试等级擦除flash块同时PC指针指向当前块的代码区,会导致仪器死机;这个也是之前用的比较多的,以上代码是模仿linux 内核的写法,可以比较好的做到日志信息分层,编译时相加对应的编译开关即可。但有个弊端就是,切换debug等级时,需要重新编译且需更新固件,而嵌入式设备出现异常后更新固件往往复位后,故障有时很难复现,调试起来比较浪费时间。

2401_84240431的博客 1294

别再为PCB和散热器文件发愁了!手把手教你用ADS导出DWG文件给工厂(附单位转换避坑指南)

本文详细解析了从ADS设计到PCB/散热器加工的DWG文件导出全流程,重点介绍了单位转换、分层导出策略及散热器文件处理等关键步骤,帮助射频工程师避免加工误差和返工。特别提供了mil与mm单位转换的精确处理方法,确保设计文件与工厂加工需求无缝对接。

weixin_30814329的博客 616

Vue3 的生命周期

【1】beforeCreate ==> setup() data挂载之前 【2】created ==> setup() data挂载了,但是写的模板语法没有渲染到页面上 【3】beforeMount ==> onBeforeMount 挂载了,但是页面没有渲染 【4】mounted ==> onMounted 页面渲染结束

m0_57002951的博客 6002

网络基础(二):数制转换与分类编址的IPv4地址

本文介绍数制转换、IP地址、分类编址的IPv4地址,希望对你有帮助!

十七拾的博客 1055

【Vue2.0源码学习】生命周期篇-销毁阶段(destroy)

接下来到了生命周期流程的最后一个阶段——销毁阶段。从官方文档给出的生命周期流程图中可以看到,当调用了方法,Vue实例就进入了销毁阶段,该阶段所做的主要工作是将当前的Vue实例从其父级实例中删除,取消当前实例上的所有依赖追踪并且移除实例上的所有事件监听器。也就是说,当这个阶段完成之后,当前的Vue实例的整个生命流程就全部走完了,最终“寿终正寝”了。本篇文章就来分析一下在销毁阶段都做了哪些工作。本篇文章介绍了生命周期流程的最后一个阶段——销毁阶段。我们知道了,当调用了实例上的。

一个前端开发者 7213

STM32F103C8T6实战:从零搭建三相SPWM逆变器(附MATLAB仿真、PCB、源码)

本文详细介绍了如何使用STM32F103C8T6单片机从零搭建三相SPWM逆变器,涵盖硬件选型、PCB设计、SPWM算法实现及MATLAB仿真。项目提供完整的工程文件,包括源码、PCB设计和仿真模型,适合电子工程师和学生进行实践学习。通过本教程,读者可以掌握逆变器设计的核心技术和调试方法。

weixin_30458043的博客 453

软考中级-软件设计师 知识点整理(一篇就过了 建议收藏)

软考中级-软件设计师上午题知识点总结

片言可决讼,半纸能缚龙 17万+

Vue实例生命周期

Vue实例的生命周期

weixin_44904482的博客 4217

OpenCV实战之人脸美颜美型(八)——大眼(下)

我们需要将上述描述量化表达,以r代表上述变形区域的圆的半径,X表示原始图像像素到变形圆圆心的距离,Y表示像素变形后的其距离变形圆圆心的距离,则其形状大致如下图所示。如下图所示,我们可以规定处理区域为眼睛为圆心的一个圆形,从圆心区域开始图像会放大,但该放大的比例随着距离圆心的距离而变小,直至边缘区域的放大比例为0。不过在实际图像变形操作中我们要从目标图像映射到原图,因此我们需要将X/Y调换,让X表示变形后图像的像素距离变形圆中心的距离,Y表示原图像素距离变形圆中心的距离,则其形状如下图所示。

On my way 901

vue3.x篇二:生命周期

vue3.0的生命周期 <template> <div>生命周期</div> <button @click="update">版本号{{version}}</button> </template> <script> //按需引入 import {ref, onBeforeMount, onMounted, onBeforeUpdate, onUpdated, onBeforeUnmount, onUnmounted

杨阳洋的博客 300

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

25.vue3学习篇-生命周期和新特性

Vue 3 允许开发者创建自定义渲染器,以适应不同的平台和环境。这使得 Vue 可以在更多的场景下使用,例如原生移动应用开发、服务器端渲染等。

qq_34334992的博客 2586

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

vue学习笔记(3)--vue的生命周期篇

vue的生命周期解释

JJ_huahua的博客 329

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

《Vue3 从入门到大神10篇》生命周期钩子 —— Vue3 中的“生老病死”

Vue2与Vue3生命周期对比及使用指南: Vue3通过setup()替代了Vue2的beforeCreate和created钩子,生命周期函数改为onXxx形式(如onMounted)。setup()在组件创建前执行,无this且不可访问DOM。新特性包括:支持多次注册同一钩子、需在onBeforeUnmount清理副作用、keep-alive相关钩子改为onActivated/onDeactivated。父子组件生命周期顺序保持"父开始,子先结束"。注意避免在setup中使用旧钩子,子组件DOM操作需结

weixin_41997616的博客 281

Vue3 表格封装实战:列配置 + slot 扩展 + 请求生命周期|Vue生态精选篇

本文以中后台前端实战为场景,手把手带你封装 Vue3 可复用表格组件。围绕列配置驱动、slot 灵活扩展、请求生命周期统一管理三大核心,讲解如何基于 Element Plus 封装出支持动态列、自定义渲染、自动 loading / 分页 / 错误处理的 BaseTable,彻底告别重复写 el-table-column,真正实现业务页面 “开箱即用、简洁可维护”。适合前端基础薄弱、想提升组件封装能力的同学学习。

中后台前端工程师,专注技术本质,用通俗语言讲清硬核知识点,持续输出成长干货。 716

《Vue3 从入门到大神50篇》Vue3 源码详解(二十):生命周期钩子源码解析 —— onMounted / onUpdated 如何实现?

Vue3生命周期钩子机制解析 本文深入剖析Vue3生命周期钩子的核心机制,揭示其作为"组件实例回调队列"的本质。关键点: 注册机制:通过injectHook将钩子函数存入组件实例对应的数组(如mounted: []),支持多次注册并按顺序执行。 调度时机:各钩子在不同渲染阶段触发: onMounted在DOM创建后执行,可安全访问DOM onUpdated通过queuePostFlushCb在nextTick后触发 父子组件执行顺序遵循"setup父→子,挂载子→父"的规律 特殊场景: KeepAliv

weixin_41997616的博客 411

前端面经-VUE3篇(二)--vue3组件知识(二)依赖注入、异步组件、生命周期、组合式函数、插件

组件不是立即加载的,而是在需要时才异步地被加载。它的核心思想是:“用的时候才加载”,这对以下场景非常有用:页面拆分(如路由页面)大型组件库懒加载多个组件中只有部分在运行中用到组合式函数是一个以useXxx()命名的普通 JavaScript 函数,在其中使用 Vue 的组合式 API(如refreactivewatchcomputed等),然后将这些逻辑封装并返回供多个组件使用。简化理解就是:“把多个组件中重复的响应式逻辑、状态、侦听器等代码封装成函数,复用它们。

qq_44643806的博客 1228

Vue2 与 Vue3生命周期对比

Vue2 与 Vue3生命周期对比 1. Vue2.x 2. vu3.x 3. 与 2.x 版本生命周期相对应的组合式 API beforeCreate -> 使用 setup() created -> 使用 setup() beforeMount -> onBeforeMount mounted -> onMounted beforeUpdate -> onBeforeUpdate updated -> onUpdated beforeDestroy ->

m0_48942526的博客 304

Vue3 学习笔记 —— 生命周期

目录结构如下: App.vue <template> <Child :count="count" v-if="isShow" @addCount="addCount"/> <button @click="isShow=!isShow">切换显示</button> </template> <script lang="ts"> import { defineComponent, ref} from 'vue'; impor.

叹之 828

Vue3.0 directive的使用说明

指令生命周期关键字变更 在3.0中指令的注册和其生命周期是这样的 import { createApp } from 'vue' const app = createApp({}) // 注册 app.directive('my-directive', { // Directive has a set of lifecycle hooks: // called before bound element's parent component is mounted beforeMount() .

sinat_41541913的博客 1484

#Vue3篇: vue3生命周期setup--onBeforeMount--onMounted--onBeforeUpdate--onUpdated--onBeforeUnmount--onUnmou

【代码】#Vue3篇: vue3生命周期setup--onBeforeMount--onMounted--onBeforeUpdate--onUpdated--onBeforeUnmount--onUnmou。

... 656

Vue3之生命周期钩子函数

vue3生命周期

youhebuke225的博客 315

[Vue3学习笔记]Vue3生命周期和自定义hook函数

Vue3学习笔记Vue2和Vue3生命周期的区别自定义hook函数获取鼠标位置封装axios的hook如果我们要加一个监听呢? Vue2和Vue3生命周期的区别 两变:最直观的是两个名称的改变 Vue2 Vue3 beforeDestory beforeUnmount Destoryed unmounted 两删:created和beforeCreate被删掉了,因为有setup了 加一个on:其他的都是加上了一个on,比如mounted---> onMounted,当然

あなたの可愛い41 2288
上一篇: 解决iview中表格导出Excel时单元格内不换行的问题
下一篇: VUE全家桶之vuex的使用
厌笔不萧生
博客等级 码龄10年 5粉丝 36原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值