Recat初始
1.Recat基本概念
- Recat是Facebook开发出的一款JS库,Facebook认为MVC无法满足他们的扩展需求。
- 特点:
1、recat不使用模板,意味着这是一个全功能的语言来渲染相关页面的视。
2、recat不是mvc框架,它是一个构造可以组合式的用户界面库,它鼓励我们可以重用UI组件,这样会随着时间的改变而发生数据的改变。
3、recat是响应式的,在传统的js应用当中,我们首先要考虑的是数据变化,然后再手工的指示DOM做出相关的变化,把当前页面展示的数据保持成最新的。或者像AngularJS 提供的一个声明式的接口,由指令来把数据绑定关联成一个函数,手动的更新到界面。Recat采用的是不同的方法,当我们的组件第一次初始化的时候,它就会调用render的方法,通过这个方法会产生一个标签字符串,然后会自动的插入到当前的页面当中,当数据变化时,render会再次的被自动调用,它就会以最小的方式来进行DOM渲染。
4、recat是一个轻量级的js库,它有自己的一套文档表现,可以动态的渲染表格等来替代当前的Html,支持IE8以上浏览器。 - 原理:
1、虚拟DOM。在传统的web应用当中,对DOM的操作一般都是直接进行更新操作的。但是在操纵DOM的时候,通常是非常浪费资源的,因为每一次操纵DOM的时候,浏览器都会重新渲染DOM,并且重新生成一个DOM树,这样大大的增加了浏览器的资源消耗。Recat就比较注重高效,它可以为了尽可能减少对DOM的操作,给我们提供一个非常强大的方式来帮助我们更新DOM,替代我们直接进行DOM操作,这个就是它的虚拟DOM。虚拟DOM原理:recat把DOM抽象成一个js对象,通过这个js对象来实时的更新真实的DOM。
2、diff算法:只操作界面上真正发生变化的部分;逐层次来进行节点比较(假如同一级别的节点进行比较,新节点不存在这个节点了,就不会再对这一节点级别下的节点进行比较)。 - Recat 历史轴
2010 react最初迹象 - FB引入xhp到php代码中, 同年开源
2011 早期原型 - Jordan Walke 创建 FaxJs, react的早期原型, 支撑了FB的一套搜索组件。
2012 fb新变化 FB AD 管理难度加深。 - FB需要找到更好解决方案。 Jordan Walke 基于原型创建了react。4月9日,FB收购Instagram。Instagram想使用FB的新技术。基于此,FB受压之下考虑解耦并开源React。这些大部分由Pete Hunt完成。
2013 发布之年 - 5月29日至31日:JSCONF US 峰会, Jordan Walke 介绍React, React开始开源。6月2日:React 接入 JSFiddle,7月30日:React和jsx 接入 Ruby On Rails框架,8月19日:React和jsx 接入Python应用,9月14日至15日:JSCONF EU大会,Pete Hunt发布’重新思考最佳实践‘的主旨演讲,12月17日:David Nolen 介绍 基于React的 OM框架,介绍中解释了React的高级特性,获得一批早期的支持者。文中解释React如何优于其他方案,进一步提高React的认知度。
2014 扩张之年 - 他们开始转向吸引企业用户,像: Netflix。2014年早期:#reactjsworldtour 大会开启,创建社区,开始把质疑者变为支持者,1月2日:React Developer Tool 成为谷歌开发者工具的插件。2月:21世纪极客编辑器 - Atom发布。4月7日至9日:React London 2014 大会召开。6月:ReactiveX.io 成立。7月13日:React热加载器发布, 它是一个可以热加载React组件,同时不丢失state数据的插件。12月12日:PlanOut, 一项用于在线实验的语言发布。发布的0.5版本中包含一个基于React实现的Planout语言编辑器,引入FB内部使用的完整特性的编译器。
2015 走向稳定 - 2015年早期:Flipboard 发布 React Canvas,1月: Netflix 表示喜欢React。2015年早期: Airbnb开始使用React。1月28日至29日:Reactjs Conf 2015大会,FB在一次技术演讲中发布了React Native的第一个版本。2月:发布 Relay 和 GraphQL。3月25日:FB宣布 RN IOS 开源并提交Github。6月2日:Dan Abramov 和 Andrew Clark 发布了 Redux。9月2日: React Developer Tools 第一个稳定版本发布。9月14日:RN Android 发布。
2016 引领主流 -3月:Mobx 发布。2月22日至23日:Reactjs 2016大会在旧金山举办,Isaac Salier-Hellendag 介绍 Draft.js。3月:React Storybook 发布。6月2日至3日:React欧洲大会举办。7月11日:React的 错误代码系统 发布。11月: React UI工具集 Blueprint。
2017 改进之年 - 2017年早期:Airbnb 发布开源库 React Sketch.app。4月19日:F8 2017 大会 React Fiber 开源。9月:React, Jest, Flow, and Immutable.js 更换授权许可。9月26日:React 16 发布,包含: error boundaries, portals, fragments 和 Fiber架构等一系列特性。10月:Netflix 移除 客户端Reactjs。11月28日:React v16.2发布,提供Fragment优化改进。
2018至今 -React 已经成为前端数一数二的主流JS框架。