主流前端框架都遵循组件化开发模式,根据更新粒度可以分为应用级、组件级和节点级。他们的实现原理均为UI=f(state)

即框架内部的运行机制根据状态渲染视图

应用级代表:React

组件级代表:Vue

节点级代表:Svelte、SOLID

一、 节点级更新框架原理

  1. 预编译:将状态变化可能导致的节点变化编译为具体方法
  2. 细腻度更新
    1. 监听状态变化:采用发布订阅者模式,创建一个状态之后,会为状态维护一张“订阅该状态变化的表”,所有需要监听该状态的函数都会在该状态表中注册,每当状态变化,都会遍历这张表。
    2. 当监听导致状态变化直接调用具体方法改变对应视图

二、 应用级更新框架原理

采用虚拟DOM技术。首屏渲染时,React会根据应用的树结构创建一颗对应的虚拟DOM树,当状态更新后,React生成一颗完整的虚拟DOM树,新生成的每个节点会与之前的虚拟DOM树的同级节点进行比较,如果存在差异,则记录该差异,然后将记录的不一致渲染到视图上。

二、 组件级更新框架原理

Vue在状态更新后,不生成整个虚拟DOM树,只生成发生改变的DOM树。

主要使用细腻度更新和虚拟DOM,Vue3中引入了预编译

参考:

『货很干』主流前端框架的实现原理,懂完了你_哔哩哔哩_bilibili

主流前端框架实现原理相关推荐

  1. 2017html5框架排名,2017年最主流前端框架比较:Angular、React 和 Vue

    如果你是一名前端开发人员,或者是想要学习web前端开发技术的小伙伴,必须要了解的这三款最主流的前端框架.不仅可以帮助你拿到高薪,也能够提升你的编程思想. 目前前端开发技术主要可以分成四个方面: 1.前 ...

  2. 视频教程-主流前端框架下ArcGIS API for JavaScript的开发-其他

    主流前端框架下ArcGIS API for JavaScript的开发 毕业于中国矿业大学地理信息科学专业.现就任于全球领先的GIS公司,主要担任地理平台研发工作,日常工作任务是ArcGIS JS A ...

  3. 三大主流前端框架比较,程序员会怎么选?

    关于Web前端三大框架,一直以来是广大前端开发者口水战必争话题.那么今天也来趟一趟这浑水,仅仅是个人一点小的看法,轻喷哦~ 之所以Web前端框架这个话题热度那么高,很大程度上是因为受众众多.这一点要解 ...

  4. Vue为什么能逆袭 Angular和React成为主流前端框架?

    作者 | Maja Nowak  译者 | 苏本如  责编 | 屠敏 来源:CSDN https://www.monterail.com/blog/reasons-why-vuejs-is-popul ...

  5. 2019年三大主流前端框架比较,程序员会怎么选?

    关于Web前端三大框架,一直以来是广大前端开发者口水战必争话题.那么今天也来趟一趟这浑水,小编个人一点小的看法,轻喷哦~ 之所以Web前端框架这个话题热度那么高,很大程度上是因为受众众多.这一点小编要 ...

  6. 3大主流前端框架对比

    2019独角兽企业重金招聘Python工程师标准>>> 框架对比   Angular React Vue.js 组织方式 MVC 模块化 模块化 数据绑定 双向 单向 双向 模板能力 ...

  7. 「深入浅出」主流前端框架更新批处理方式

    作者 |

  8. vue ui框架_你为什么要使用前端框架Vue?

    1.前端框架的根本意义 1.1 前端框架的好处 最开始学习前端框架的时候(我第一个框架是 React)并不理解框架能带来什么,只是因为大家都在用框架,最实际的一个用途就是所有企业几乎都在用框架,不用框 ...

  9. 失败原因【object object】_使用前端框架Vue的原因!

    1.前端框架的根本意义 1.1 前端框架的好处 最开始学习前端框架的时候(我第一个框架是 React)并不理解框架能带来什么,只是因为大家都在用框架,最实际的一个用途就是所有企业几乎都在用框架,不用框 ...

  10. 5大JavaScript前端框架简介

    转载 https://www.cnblogs.com/fundebug/p/9181621.html 译者按: 简要介绍五大前端框架特性 原文: Top 5 JavaScript Frameworks ...

最新文章

  1. 动态路由协议RIP的基本原理与配置
  2. lstm中文分词pytorch版本
  3. 面试腾讯我遇到了这题:数组全排列
  4. springmvc十九:springmvc表单标签
  5. 友盟2015年Q2、Q3中国移动互联网趋势报告
  6. links下c语言中for的作用是,C语言开发注意事项
  7. springboot动态加载native类库
  8. 列表推导式、字典推导式、集合推导式
  9. matlab求微分方程同届,Matlab学习——求解微分方程(组)
  10. FormView在什么情况下自动生成模板项?
  11. spyder pyecharts不显示_我的显示器需要定时校色吗?
  12. 万网与阿里巴巴业务关系图解
  13. android 高德地图设置不能旋转_如何将平面控制点导入Google Earth、奥维互动地图及手机奥维互动地图APP里面?...
  14. GL3520 USB3.0集线器USB HUB电路AD设计硬件原理图+PCB+集成库
  15. Go语言第一课背后的那些事儿
  16. TTP223 触摸按键
  17. 如何使用命令行合成一句话图片木马
  18. 【python爬虫】easyocr识别gif图片文字
  19. 云服务器只能显示控制台吗,云服务器控制台使用方法
  20. 使用python封装了一个获取小程序token,发送订阅消息的类

热门文章

  1. 使用rsync搭建自用的开源镜像站
  2. 微信小程序 px和rpx px和pt 深度解析
  3. linux下安装postgresql遇到的问题(zlib library not found,readline library not found)
  4. Gitlab-Runner安装并注册
  5. 翻车记之2018.7.27
  6. PING 192.168.5.13 (192.168.5.13 ) 56(84) data bytes后长时间不响应
  7. 几个免费企业邮箱及申请注册教程 网易 腾讯 阿里云
  8. 如何申请免费SSL证书?宝塔面板SSL证书安装部署完整教程
  9. 阿里云服务器申请免费ssl证书
  10. 从文案到配音,只需要一部手机!5分钟掌握影视解说制作流程