vue运行机制

深入理解 Vue 3 项目结构与运行机制 Vue 3项目含index.html等核心文件,组件是构建块,借助Router和Vuex管理路由与状态,经特定流程可启动、构建与格式化代码 。 阅读详情

摘抄自:https://www.jianshu.com/p/fd00e25ff146

引入vue.js,new Vue()干了什么呢?

  1. 初始化
    调用Vue原型上的_init()进行初始化,会初始化vue的生命周期,props,data,methods,computed,watch,最重要的是利用Object.definedPropty()对data对象里面的属性设置setter和getter函数,也就是来实现响应式和依赖收集

  2. 挂载组件
    调用$mount挂载组件

  3. 编译
    编译三部曲,parse(解析)、optimize(标记静态节点做优化)、generate(转成字符串)
    3.1 parse:利用正则将模板转换成抽象语法树(AST);
    3.2 optimize: 标记静态节点,以后update的时候,diff算法可以跳过静态节点
    3.3 generate:将抽象语法树(AST)转成字符串,供render去渲染DOM

经过以上步骤,就可以得到render funciton

  1. 响应式
    响应式是vue中我认为最核心的部分,利用Object.definedPropty 设置data所返回的对象后,在进行render function被渲染的时候,会对data对象进行数据读取,会触发getter函数,从而把data里面的属性进行依赖收集,依赖收集的目的是将这些属性放到观察者(Watcher)的观察队列中,一旦我们对data里面的属性进行修改时,就会触发setter函数,setter告诉观察者数据变化,需要重新渲染视图,观察者调用update来更新视图

  2. 虚拟DOM
    render funtion 会被转换成虚拟DOM,虚拟DOM实际上就是一个js对象,从顶层DOM层层描述DOM,有tag, children, isStatic, isComment等等许多属性来做DOM描述

  3. 更新视图
    当数据发生变化时候,会经历setter => Watcher => update这些步骤,那么最终是怎么更新视图的呢?
    在update的时候,会执行patch,将新旧VNode传进去,通过diff算法算出差异,局部更新视图,做到最优化。

最后上一张完整结构图




 

Vue.js的运行机制及编程概述 Vue.js是一种强大而灵活的JavaScript框架,通过其响应式的数据绑定和组件化的开发方式,使得构建交互式的用户界面变得简单和高效。当我们修改输入框中的文本时,Vue.js会自动更新相关的虚拟DOM节点,并将新的值渲染到页面上。组件可以嵌套使用,形成复杂的组件树。虚拟DOM更新:当数据发生变化时,Vue.js会对比新旧虚拟DOM的差异,并将差异应用到真实的DOM元素上,从而实现页面的更新。当我们在输入框中输入文本时,Vue.js会自动更新"message"数据属性的值,并将新的值显示在段落标签中。 阅读详情

相关推荐

剖析 Vue.js 内部运行机制

把原理抽象为小 Demo,以一种对新手友好的方式带领读者漫游 Vue.js 的世界

斌擎科技 486

VUE原理及运行机制

在修改对象值时,会触发响应的setter,setter通知之前【依赖收集】到的Dep 中的所有watcher,告诉他们自己的值变了,需要重新渲染视图。3.设置一个解析器 Compile,可以扫描和解析每个节点的相关指令(v-model,v-on等指令),如果节点存在 v-model,v-on等指令,则解析器 Compile 初始化这类节点的模板数据,使之可以显示在视图上,然后初始化相应的订阅者(Watcher)如果修改了text3的数据,但视图中不需要text3,所以并不需要调用cb函数。

三包酸奶!的博客 1590

Silvaco TCAD | 从PIN到APD:高性能光电探测器的仿真设计与优化

本文详细介绍了使用Silvaco TCAD进行光电探测器仿真设计与优化的全过程,从基础的PIN结构到高性能APD的实现。通过实战案例和代码示例,展示了如何优化器件参数、实现雪崩效应以及进行高级仿真分析,帮助工程师提升光电探测器的量子效率和响应速度。

weixin_29218509的博客 427

vue的运行过程和各阶段分析

【代码】vue的运行过程和各阶段分析。

猿脑2.0的博客 1005

软件项目成本控制实战:从COCOMO模型到挣值分析的5个关键步骤

本文详细介绍了软件项目成本控制的5个关键步骤,从COCOMO模型估算到挣值分析预警,帮助中小型团队精准管理预算。通过简化COCOMO II的有机模式、动态建立成本基准、轻量化挣值分析等方法,项目经理可以有效应对预算超支和进度延误问题,提升项目成功率。

weixin_30733003的博客 227

Rapid SCADA MQTT

一、配置RapidSCADA 1、准备KpMqtt.dll、Jint.dll库文件,从网盘下载。 2、将以上两个文件拷贝到SCADA安装目录的Comm/KP目录下,如下: C:\SCADA\ScadaComm\KP 3、新建SCADA项目 4、新建Line 5、新建Device 6、拷贝Config目录下的KpMqtt_001.xml文件、KpMqtt_Job.js文件到项目Comm\Config下,如下示例链接 C:\SCADA\Projects\MQTTProject\Instances\Defau

mumanquan1的博客 3007

什么是Vue?Vue的工作原理是什么?

Vue(读音/Vju:/,类似于View)是一套用于构建用户界面的渐进式框架,与其他大型框架相比,Vue被设计为可以自底向上逐层应用。其他大型框架往往一-开始就对项 目的技术方案进行强制性的要求,而Vue更加灵活,开发者既可以选择使用Vue来开发一个全新项目,也可以将Vue引入到一个现有的项目中。 另一方面,当Vue与现代化的工具链以及各种支持类库结合使用时,也完全能够为复杂的单页应用提供驱动。工具链是指在前端开发过程中用到的一系列工具,例如,使用脚手架工具创建应用,使用依赖管理工具安装依赖包,以及使用构建

xiaoxijinger的博客 6414

从Jira到Notion:用Sequential Thinking重构你的敏捷工作流(含GPT-6配置模板)

本文探讨了如何利用Sequential Thinking这一AI认知模型,重构敏捷开发工作流。通过连接Jira、Notion等工具,构建动态依赖图谱,实现从被动响应到主动规划的转变。文章提供了详细的配置教程和GPT-6配置模板,帮助团队实现任务自动拆解、智能看板生成与跨平台协调,从而提升项目管理效率。

gpt4scribbler的博客 205

Vue.js其原理和运作机制

每个组件都是一个具有独立逻辑和样式的模块。组件可以通过props接收数据,通过events传递消息。});

m0_65084430的博客 2158

slew dreate,slew threshold与transition计算

​只看rise情况下,from pin取slew threshold10%-90%的区间,slew derate为1,计算得到transition为1.002e-10,to pin的slew threshold 为30%-70%,slew derate 0.5,从波形列表上取相近的值3.75e-10和8.75e-10,计算得到transition为(8.75e-10-3.75e-10)/0.5=1e-9,考虑精度和取值区间问题,基本符合工具计算的值,如下:​。如下示例,在.lib库中有定义以下内容。

m0_61544122的博客 795

第一节:初识n8n与下一代工作流自动化

本章介绍了n8n的Fair-code理念与节点式架构,对比了其与Zapier/Make的核心差异,并引导读者在n8n Cloud上完成首次界面导览,建立了工作流自动化的宏观认知。

easeyoo的专栏 106

vue项目如何运行(超详图解)

若出现类似下图显示,即为安装成功。

weixin_57037336的博客 9990

从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(十一)spring-boot-admin 监控篇(2)springcloud 集成spring boot admin

从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十一)spring-boot-admin 监控篇(2)springcloud 集成spring boot admin spring-boot-admin 服务端创建与集成入nacos spring-boot-admin 查看日志

峡谷电光马仔的博客 1385

Vue内部运行机制剖析--思维导图总结

总结的Vue机制内部运行概览思维导图: VUE机制内部运行概览思维导图文字版本: 初始化以及挂载 来自于:new Vue()之后 调用分方法:_init 初始化生命周期、事件、 props、 methods、 data、 computed 与 watch 之后: $mount 会挂载组件 编译template 编译 parse 会用正则等方式解析 tem...

Wion Wan 1003

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

vue和react的运行机制

Vue.js是一个渐进式JavaScript框架,用于构建用户界面。Vue的核心库只关注视图层,不仅易于上手,也便于与第三方库或已有项目整合。Vue和React都是现代的前端框架,它们提供了丰富的特性和工具,帮助开发者构建复杂的用户界面。虽然它们有很多相似之处,但也有一些重要的区别,特别是在运行机制方面。React是一个用于构建用户界面的JavaScript库,由Facebook开发并开源。React的核心思想是组件化开发,它提供了一种声明式的方式来构建用户界面。

m0_73481765的博客 1103

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Vue的内部运行机制

Vue的内部运行机制 序 最近做了一个关于Vue的内部运行机制的分享会,记录一番笔记。 目录大纲 概述 初始化及挂载 响应式的实现 编译 Virtual DOM和数据更新时的patch() 概述 初始化 初始化生命周期、事件、render、state Object.definePrototy() 响应式的定义 挂载 (运行时 + 编译器) template到render Funct...

RedlOvE 1250

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

vue.js运行机制

Vue.js 运行机制全局概览 全局概览 希望大家在有了一定的vue.js 寄出后再来阅读 首先我们来看一下笔者画的内部流程图。 大家第一次看到这个图一定是一头雾水的,没有关系,我们来逐个讲一下这些模块的作用以及调用关系。相信讲完之后大家对Vue.js内部运行机制会有一个大概的认识。 初始化及挂载 在 new Vue() 之后。 Vue 会调用 _init 函数进行初始化,也就...

CarrreyYan_979292的博客 519

Vue 3 的运行机制

Vue 3 运行机制分三级拆解:应用级(createApp 创建上下文)、组件级(从编译到挂载的完整生命周期)、响应式级(Proxy 数据驱动更新)。核心流程包括:编译模板生成带优化标记的 VNode→响应式数据追踪依赖→调度器批量触发更新→基于 PatchFlag 的靶向 DOM 更新。通过静态提升、异步批处理等优化策略,实现高效渲染。整个过程由生命周期钩子串联,形成从数据变更到视图更新的完整闭环。

循环编织时间年轮,递归叩问存在本质,谁能在硅基荒原上,种出思想的玫瑰…… 946

Vue和React的运行机制

Vue和React都是目前主流的前端框架,它们具有相似的运行机制,但也有一些区别。本文将详细介绍Vue和React的运行机制,包括组件化、虚拟DOM和响应式更新,还会提供一些代码示例以帮助读者更好地理解。

一个努力不被优化的程序员 1518

Vue3 的组件运行机制

Vue3 组件运行机制解析:从创建到销毁的完整生命周期 Vue3 组件运行机制是一个完整的闭环流程,包含组件从创建到销毁的全过程。核心流程为:创建组件实例 → 初始化props/slots → 执行setup() → 建立响应式effect → 首次render挂载 → 响应式数据变化触发更新 → 重新render → 最终卸载。 关键机制在于:1)通过effect将组件变为响应式副作用;2)数据变化触发trigger,调度器批量更新;3)patch阶段采用虚拟DOM Diff算法高效更新UI,包括组件递归

青蛙king的博客 965

Vue运行机制-------面试重点

Vue3 是一个声明式的框架。总结:当模板编译成的渲染函数执行时,渲染函数内部用到的响应式数据会和渲染函数本身构成依赖关系,之后只要响应式数据发生变化,渲染函数就会重新执行。会将其编译为渲染函数,渲染函数执行后能够确定响应式数据和渲染函数之间的依赖关系,之后响应式数据一变化,渲染函数就会重新执行。用户书写模板----> 编译器 ----> 渲染函数 ----> 渲染函数执行得到上面的 JS 对象(虚拟DOM)执行渲染函数得到的就是虚拟 DOM,也就是像这样的 JS 对象,里面包含着 UI 的描述信息。

m0_73280905的博客 819

剖析vue内部运行机制

掘金小册-剖析Vue.js内部运行机制

起风了 657

剖析vue原理及运行机制(上)

这是笔者最近一段时间的学习收获,笔者历时半天将其整理成文,以便日后复习,也可能对各位有些许帮助。文章稍长,但绝对精粹。也算是笔者为各位献上的一份“元旦大礼”吧~~ (因文章过长,故将其整理为上、下两篇,之间连续贯通) Vue运行机制全局预览 初始化及挂载 在new了vue之后,Vue会调用_init函数进行(全局)初始化。初始化生命周期、事件、props、methods、data、comput...

flying meng的菜鸟居 1862

vue3运行机制同tkinter做类比

这篇文章通过房屋建造的比喻,将Vue3前端框架与Python的tkinter桌面GUI开发进行了系统对比。两者在组件化、响应式系统、生命周期等方面存在相似概念,但实现方式不同:Vue3采用虚拟DOM和diff算法实现跨平台渲染,而tkinter直接操作系统原生控件。关键差异包括:数据绑定方式(Vue3的ref()对应tkinter的变量追踪)、渲染机制(虚拟DOM vs 直接重绘)、运行环境(浏览器 vs 桌面应用)。文章用对照表形式清晰展示了两种技术在项目结构、组件编写、响应式更新等环节的对应关系,最终指

循环编织时间年轮,递归叩问存在本质,谁能在硅基荒原上,种出思想的玫瑰…… 545
上一篇: 个人博客网站项目
下一篇: js继承方式
commeil
博客等级 码龄5年 2粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值