react和vue的渲染流程

React与Vue3渲染流程完整对比笔记 维度ReactVue3核心理念响应式数据驱动更新策略推式:开发者触发更新拉式:自动追踪依赖优化方向运行时调度优化编译时静态优化心智负担较高(需理解闭包、依赖)较低(响应式自动处理) 阅读详情

react和vue的渲染流程对比

react是facebook创建的框架,它推广了虚拟dom和新的js语法----jsx,在2013年5月份进行开源,React 是一个用于构建用户界面的 JAVASCRIPT 库。React主要用于构建UI,很多人认为 React 是 MVC 中的 V(视图)

react的特点

  1. 声明式设计 −React采用声明范式,可以轻松描述应用。
  2. 高效 −React通过对DOM的模拟(虚拟dom),最大限度地减少与DOM的交互。
  3. 灵活 −React可以与已知的库或框架很好地配合。
  4. JSX − JSX 是 JavaScript 语法的扩展。
  5. 组件 − 通过 React 构建组件,使得代码更加容易得到复用,能够很好的应用在大项目的开发中
  6. 单向响应的数据流 − React 实现了单向响应的数据流,从而减少了重复代码,这也是它为什么比传统数据绑定更简单。

Vue作者尤雨溪 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

vue的特点

MVVM框架、双向数据绑定原理,数据驱动、组件化、轻量、简洁、高效、模块友好

Virtual DoM

虚拟dom是一个什么概念呢

Vue.js(2.x)与React的其中最大一个相似之处,就是他们都使用了一种叫'Virtual DOM'的东西。所谓的Virtual DOM基本上说就是它名字的意思:虚拟DOM。

DOM树的虚拟表现。它的诞生是基于这么一个概念:改变真实的DOM状态远比改变一个JavaScript对象的花销要大得多。

Virtual DOM是一个映射真实DOM的JavaScript对象,如果需要改变任何元素的状态,那么是先在Virtual DOM上进行改变,而不是直接改变真实的DOM。当有变化产生时,一个新的Virtual DOM对象会被创建并计算新旧Virtual DOM之间的差别。之后这些差别会应用在真实的DOM上。

react的渲染流程

babel转换工具地址:http://babeljs.io/repl/

1. react中 我们用jsx来写组件,它会被babel转换成纯js,然后Preact的h函数会将这段js转换成DOM树,最后Preact的Virtual DOM算法会将virtual DOM转换成真实的DOM树,来构建我们的应用。
2. 真实的Virtual DOM会比上面的例子更复杂,但它本质上是一个嵌套着数组的原生对象。当新一项被加进去这个JavaScript对象时,一个函数会计算新旧Virtual DOM之间的差异并反应在真实的DOM上。计算差异的算法是高性能框架的秘密所在。
解析流程概览图

React依赖Virtual DOM,而Vue.js使用的是DOM模板。React采用的Virtual DOM会对渲染出来的结果做脏检查。

vue的渲染流程

Vue宣称可以更快地计算出Virtual DOM的差异,这是由于它在渲染过程中,会跟踪每一个组件的依赖关系,不需要重新渲染整个组件树。

流程示例图
Vue的编译器在编译模板之后,会把这些模板编译成一个渲染函数。而函数被调用的时候就会渲染并且返回一个虚拟DOM的树。这个树非常轻量,它的职责就是描述当前界面所应处的状态。
当我们有了这个虚拟的树之后,再交给一个patch函数,负责把这些虚拟DOM真正施加到真实的DOM上。在这个过程中,Vue有自身的响应式系统来侦测在渲染过程中所依赖到的数据来源。
在渲染过程中,侦测到的数据来源之后,之后就可以精确感知数据源的变动。到时候就可以根据需要重新进行渲染。
当重新进行渲染之后,会生成一个新的树,将新树与旧树进行对比,就可以最终得出应施加到真实DOM上的改动。最后再通过patch函数施加改动。

要点可以概括为

  • 当某个数据属性被用到时,触发 getter,这个属性就会被作为依赖被 watcher 记录下来。

  • 整个函数被渲染完的时候,每一个被用到的数据属性都会被记录。

  • 相应的数据变动时,例如给它一个新的值,就会触发 setter,通知数据对象对应数据有变化。

  • 此时会通知对应的组件,其数据依赖有所改动,需要重新渲染。

  • 对应的组件再次调动渲染函数,生成 Virtual DOM,实现 DOM 更新。

基本原理:前端渲染流程、JS、ts、vue、react的基本关联及简单原理 渐进式:边下载边渲染遇到遇到 CSS 资源会阻塞后续渲染阻塞渲染阻塞渲染:阻塞html解析和css解析DOM 树描述 “页面有什么内容”,CSSOM 树描述 “内容该怎么显示”,两者。渲染树生成后,浏览器需要计算每个元素的位置、大小、偏移量等几何信息,这个过程称为 “布局”(Layout)或 “回流”(Reflow) 阅读详情

相关推荐

设置Solidworks导出文件的坐标系,stl坐标系平移

使用solidworks输出的模型坐标不再原点,怎么平行坐标系,这个方法很简单

weixin_45650767的博客 1万+

Vue 渲染流程详解

Vue 渲染流程详解

m0_55333789的博客 3127

【AI之路】cmd命令行通过Huggingface镜像站快速下载模型文件的方法

Hugging Face Hub 是分享机器学习模型、演示、数据集和指标的首选之地。huggingface_hub 库可以轻松下载Huggingface上有用的模型和数据集元数据。但大模型文件通常较大,国内下载太慢,那有没有高效便捷的方法?这个当然必须有!看到了吗?只是添加一个参数,下载大模型就搞定了。当然也可以使用python程序来下载。具体见前期博文:【AI之路】使用huggingface_hub通过huggingface镜像站hf-mirror.com下载大模型(附代码,实现大模型自由)

IT里的交易员-博客 1859

VUE 学习笔记(三) Vue 渲染流程详解

在 Vue 里渲染一块内容,会有以下步骤及流程:第一步,解析语法,生成AST第二步,根据AST结果,完成data数据初始化第三步,根据AST结果和DATA数据绑定情况,生成虚拟DOM第四步,将虚拟DOM 生成真正的DOM插入到页面中,进行页面渲染。那怎么理解这个流程呢?AST 语法树,实际就是抽象语法树(Abstract Syntax Tree),是指通过构建语法树的形式将源代码中的语句映射到树中的每一个节点上。DOM 结构树,也是AST中的一种,把HTML DOM语法解析并生成最终页面。

w风雨无阻w的专栏 3944

AC360变频器使用案例

AC360变频器使用案例!

QING_BOSS的博客 518

实用电路精讲系列---仪表放大器

摘要 仪表放大器通过三级运放架构实现高共模抑制比(CMRR>100dB)和精密差分放大,其核心是第一级同相运放提供高输入阻抗和可调增益(G=1+2R/RG),第二级差分运放消除共模干扰。具有低失调(≤50μV)、低温漂(≤0.6μV/℃)特性,广泛应用于智能断路器电流监测、ECG心电信号放大等场景。典型电路采用LTC1049运放,通过匹配电阻网络实现199倍差分增益,结合输出缓冲确保信号稳定性。设计时需注意输入共模电压范围限制和增益电阻精度,优选集成IC(如AD620、INA128)以规避分立元件匹配

weixin_40590799的博客 2076

Vue 页面渲染的流程

在Vue核心中除了响应式原理外,视图渲染也是重中之重。我们都知道每次更新数据,都会走视图渲染的逻辑,而这当中牵扯的逻辑也是十分繁琐。本文主要解析的是初始化视图渲染流程,你将会了解到从挂载组件开始,Vue是如何构建VNode,又是如何将VNode转为真实节点并挂载到页面。初始化调用$mount挂载组件。_render开始构建VNode,核心方法为,一般会创建普通的VNode,遇到组件就创建组件类型的VNode,否则就是未知标签的VNode,构建完成传递给_update。patch阶段根据VNode。

zz130428的博客 6371

计算机视觉——多视图几何

多视图几何1.前言1.1 多视图几何概念2. 基本原理2.1 对极几何2.2 基础矩阵2.2.1 基础矩阵推导2.2.2 求解基础矩阵3. 实验过程3.1 实验数据准备3.2 实验代码3.3 实验结果及分析4. 实验中遇到的问题 1.前言 1.1 多视图几何概念 多视图几何是利用在不同视点所拍摄图像间的关系,来研究照相机之间或者特征之间关系的一门科学。 多视图几何(Multiple View ...

RuiMa的博客 7715

React渲染机制及相关优化方案

文章主要简单记录react中的渲染机制以及相关的优化方案,内容包括如下: (1)react渲染步骤、concurrent机制以及产生作用的机会;(2)简单模拟实现 concurrent mode;(3)基于作业调度优先级的思路进行项目优化的两个hooks;(4)案例演示

weixin_53068161的博客 4031

llama.cpp量化模型在MTT显卡上的性能对比:S80/S3000/S4000实测数据

本文基于摩尔线程MTT S80、S3000和S4000三款显卡,对llama.cpp量化模型进行了深度性能实测。报告详细对比了不同量化精度(如Q4_K_M、Q6_K)在Llama 3.2 1B和Qwen 2.5 7B模型上的推理速度、显存占用、功耗及温度表现,为开发者根据硬件选择最优模型配置与参数调优提供了关键数据参考和实战指南。

week9的博客 351

汽车ECU诊断刷写和OTA升级中的验签和校验

汽车ECU诊断刷写和OTA升级中的验签和校验

天赐好车的博客 619

React原理之React整体渲染流程

上一篇这三个组件共同工作提供了 React 的高效和灵活的渲染机制,那么他们具体是怎么渲染的呢?React 的渲染流程分为两个阶段: - render 阶段:Reconciler 的工作阶段,这个阶段会调用组件的 render 方法 - commit 阶段:Renderer 的工作阶段,可以类比 git commit 提交,这个阶段会渲染具体的 UI。

jydchudq的博客 2740

《Zephyr OS 入门与实战》第15章:LoRaWAN 集成

【代码】《Zephyr OS 入门与实战》第15章:LoRaWAN 集成。

2301_79143213的博客 610

react和vue的渲染流程对比

react是facebook创建的框架,它推广了虚拟dom和新的js语法----jsx,在2013年5月份进行开源,React 是一个用于构建用户界面的 JAVASCRIPT 库。React主要用于构建UI,很多人认为 React 是 MVC 中的 V(视图) react的特点 声明式设计 −React采用声明范式,可以轻松描述应用。 高效 −React通过对DOM的模拟(虚拟dom),...

beichen3997的博客 552

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

vue和react页面渲染流程对比

React是facebook创建的框架,它推广了虚拟dom和新的js语法----jsx; Vue 是一个新兴的前端视图框架,与 React 类似,实现了前端组件化以及 View-ViewModel 绑定,但是同时又支持跟 Angular 很类似的模版语法,虽然有很多类似的地方,但两者也有很多不同,下面简述两者在渲染流程方面的对比 react渲染流程 开始代码: //react的jsx语法:...

weixin_33862514的博客 900

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

react和vue响应式数据的区别,对数据管理和界面渲染的流程解析

*setState:**为什么是异步的?提高性能,如果每一次调用setState 意味着render函数都会被执行,重新渲染新的dom,进行diff算法,效率低。做好的办法是获取多个更新,批量更新,把每一个setState都放进一个队列里,等到真正更新时,合并每一个setState,进行一次render函数。**vue:**通过defineProperty或proxy对数据进行劫持,数据变化调用render函数,template模板默认会转成render函数,render函数里又通过h函数的调用。

weixin_55980647的博客 315

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

React起源、特点、React与MVC、React与Vue渲染流程、JSX原理、VDOM

1.Facebook+Instagram+社区 团队项目 2.开源时间:2013.5 3.开发背景: 4.React 与 MVC比较 5.React与Vue的渲染流程 6.JSX原理

weixin_42357865的博客 301

玩转Reactjs第二篇-渲染和JSX

一、前言 前一章我们搭建了reactjs的标准工程,本章节我们基于标准工程的demo应用,了解react的 渲染和JSX语法。 二、渲染 1、在标准工程的public/index.html下 <div id="root"></div> 该div是我们整个应用的根节点,所有的DOM节点都挂载在该节点下,可以看成web容器。 2、再看src/index.js代码 ...

恰恰虎的博客 509

React 初次接触

个人感官,用起来是相当的爽,特别是return出一个东西来,这就是组件的力量。原理知道大体的意思就行,出了问题知道朝着哪个方向去找,react 官方的入门教程,有时间多读几遍价值很大的,快速入门 – React 中文文档可能还有比较长的路要走,如果有可能,尽量还是用React吧,Vue立刻觉得不香了,哈哈,虽然,vue也不熟,就怕货比货,饱暖思淫欲,得客服。

鸡毛掸子 1623

「面试」你不知道的 React 和 Vue 的 20 个区别

作者:火狼1原文地址:https://juejin.im/post/5ef55acde51d4534bf67a8781.Vue和React源码区别1.1 Vue源码1.1.1 挂载初始化...

LuckyWinty的博客 267

Vue和React全面对比

1.

xinxin_csdn的博客 9200

React 与 Vue 更新数据 的区别

1

weixin_45678402的博客 574

dispatch作用 react_vue和react的区别是什么?

vue和react的区别1、监听数据变化的实现原理不同Vue通过 getter/setter以及一些函数的劫持,能精确知道数据变化。React默认是通过比较引用的方式(diff)进行的,如果不优化可能导致大量不必要的VDOM的重新渲染。为什么React不精确监听数据变化呢?这是因为Vue和React设计理念上的区别,Vue使用的是可变数据,而React更强调数据的不可变,两者没有好坏之分,Vue更...

weixin_35628611的博客 526

React、Vue框架如何实现组件更新,原理是什么?

React 和 Vue 都是当今最流行的前端框架,它们都实现了组件化开发模式。为了优化性能,两者都采用了虚拟DOM技术。当组件状态发生改变时,它们会使用虚拟DOM进行局部渲染比对,只更新必要的DOM节点,从而避免重新渲染整个组件树。

study_way的博客 2万+

react ssr原理

ssr 什么是ssr:server side render,服务端渲染 不同于jsp,php等传统服务端渲染(这种情况下,前后端代码是分开的,写了两份) 目前的ssr是基于react vue等前端框架的同构渲染(即一份代码,同时运行在server和client端),开发人员只关注业务实现即可 ssr的优缺点就不细说了,无非seo,首屏更快,学习成本变高,加大服务端资源开销等 目前我们项目都逐步采用...

jiang_hyhappy的博客 1171
上一篇: CSS水平垂直居中常见方法总结
下一篇: vue-router query和params传参(接收参数)的区别
Constancy2569
博客等级 码龄9年 4粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值