在前端界,React 一定是我们耳熟能详的前端开发框架之一,它的出现可以说是带给了我们全的 Web 开发体验,其中也带来了许多新的概念:JSX、virtual-dom、组件化、合成事件等。当我们想从源码层面去研究它的原理时,由于 React 的源码的庞大和晦涩难懂,这也会变得异常困难。但是在爱好“造轮子”的前端界,我们会发现一些和 React 有着近乎相同的框架,本文的主人公 Preact 便是其中的佼佼者,一直都是 React 的顶级“备胎”。但是它相对简练的代码,使得我们更好的去学习和研究它的原理,本文将从以下几个方面介绍:

  • Preact 是什么?
  • PreactReact 的区别有哪些?
  • Preact 是怎么工作的
    • JSX
    • Virtual Dom
    • PreactVirtual DOM diff算法
  • Preact Hooks 的实现
  • 一个组件的生命周期

从本文你可以学习到(这些点也是高级前端面试的常见问题):

  • 一个前端框架的基本组成
  • 虚拟 DOM 的实现原理及细节
  • Diff 算法细节
  • Hooks 实现原理及细节
  • 组件生命周期及实现原理

阅读全文: http://gitbook.cn/gitchat/activity/5dd101add4166663fe0e5884

您还可以下载 CSDN 旗下精品原创内容社区 GitChat App , GitChat 专享技术内容哦。

Preact(React)核心原理相关推荐

  1. react 流程图框架_【赠书】Preact(React)核心原理详解Preact(React) 核心原理解析...

    豆皮粉儿们,又见面了,今天这一期,由字节跳动数据平台的"winge(宝丁)",带大家见识见识前端"轮子"之一Preact框架. 提到Preact,你肯定会先想到 ...

  2. React.js核心原理实现:首次渲染机制

    2019独角兽企业重金招聘Python工程师标准>>> 一.前言 react.js和vue.js无疑是当下最火的js框架了,它们为组件式的开发传统前端页面.SPA页面.前后端分离等带 ...

  3. React Hooks核心原理与实战

    React Hooks核心原理与实战 一.Hooks的优点 1.1 Hooks的含义 1.2 优点 二.常用的Hooks 2.1 useState 2.2 useEffect 2.3 useCallb ...

  4. Flutter 核心原理与混合开发模式

    作者:airingdeng,腾讯QQ前端开发工程师 本文将从 Flutter 原理出发,详细介绍 Flutter 的绘制原理,借由此来对比三种跨端方案:之后再进入第三篇章 Flutter 混合开发模式 ...

  5. [react] 简要描述下你知道的react工作原理是什么?

    [react] 简要描述下你知道的react工作原理是什么? 我理解的核心部分: 通过虚拟DOM表达真实DOM 通过数据驱动更新虚拟DOM进而更新真实DOM(MVVM) 有一套完整并且合理的 DOM ...

  6. 从源码角度了解react工作原理

    为什么要用虚拟dom DOM操作很慢,轻微的操作都可能导致⻚面重新排版,非常耗性能.相对于DOM对象(dom对象打印出来很大,很难diff),js对象 处理起来更快,而且更简单.通过diff算法对比新 ...

  7. React Fiber 原理实现

    react16之前的问题 react16之前dom元素的更新采用递归遍历的方式来对比子节点.一旦进入到递归遍历,整个过程将不能被打断,如果dom树的层次比较深,整个对比过程将耗时较长.而js的运行和d ...

  8. JDK ThreadPoolExecutor核心原理与实践

    作者:vivo互联网服务器团队-Xu Weiteng 一.内容概括 本文内容主要围绕JDK中的ThreadPoolExecutor展开,首先描述了ThreadPoolExecutor的构造流程以及内部 ...

  9. 还不懂spring IOC核心原理?200行代码带你手撸一个

    Spring做为Java企业级应用的开源开发框架,早已成为Java后端开发事实上的行业标准,无数的公司选择Spring作为基础的开发框架. 使用Spring框架的人一定都听过Spring的IoC(控制 ...

  10. Redis 深度历险:核心原理与应用实践

    Redis 是互联网技术架构在存储系统中使用最为广泛的中间件,它也是中高级后端工程师技术面试中面试官最喜欢问的工程技能之一,特别是那些优秀的.竞争激烈的大型互联网公司(比如 Twitter.新浪微博. ...

最新文章

  1. hibernate中的hql查询语句list查询所有与iterate查询所有的区别
  2. android虚拟键盘挡住布局,Android全屏时软键盘遮住输入框修改布局解决方案
  3. I am too vegetable to all kill the 51nod problems on level 2 and 3.
  4. 【Flask】ORM高级操作之排序和分页操作
  5. 程序员-真实学习之路
  6. 【Linux】一步一步学Linux——paste命令(58)
  7. httpurlconnect设置中文参数_数控三菱CNC机床参数的设置及报警解除!
  8. python selenium 等待元素出现_Python Selenium等待加载几个元素
  9. UE4 左右立体参数
  10. Linux2.6信号管理
  11. eclipse安装hibernate
  12. Typedef声明简介
  13. 如何成为Java开发工程师?
  14. Python全栈开发——线程与进程的概念
  15. Oracle exists与not exists的用法总结
  16. 使用tcpdump抓Android网络包
  17. 用计算机破解vivo手机数字密码,vivo手机咋样在电脑上解锁?看vivoy66解锁密码找答案。...
  18. vuxui 安装使用,解决npm项目文件严重问题提示
  19. 通用权限管理系统设计篇
  20. Flask项目基本流程

热门文章

  1. 学习的第一天,人狗大战1v1初试
  2. 代理记账公司的业务有哪些方面?
  3. MS15-034/CVE-2015-1635 HTTP远程代码执行漏洞 (漏洞验证)
  4. EXCEL-SQL学习笔记——INT和FIX函数
  5. 最短路模型(bfs)
  6. 特定节日所有页面变灰白
  7. 想封谁QQ,就封谁QQ
  8. python可以怎么赚钱_最近超火的赚钱工具Python到底怎么用?
  9. 【SAP】没有为会计年度0定义版本2021
  10. 魔众网盘系统 v1.3.0 后台菜单快捷搜索 修复已知问题