在
Stack Overflow Trends
中快速搜索React
的技术趋势, 能够清楚地发现2014
到2017
年 React 呈现稳步增加
的趋势, 并且在各大社区不难发现, 世界各地的开发人员在最近几年都在积极寻求
并得到有关 React 问题的答案.html
React 真的是很是的美妙, 咱们将会用接下来十年的时间来继续探索
.
-- Guillermo Rauch前端
ReactJS
最开始只是 XHP
的一个扩展. 简单说说 XHP, 它是 Facebook 2010 年推出的 PHP 新的书写方式, 旨在让前端开发变的更简单, 除此以外, 它还能防护跨站点脚本攻击(XSS
), XSS 对于有经验的 Web 开发人员就再熟悉不过了, 它容许用户恶意将代码注入到网页中, 是一种常见的 Web 应用程序的安全漏洞攻击. XHP 有 Automatic XSS protection
的功能, 可以很好地规避以上问题.react
然而, XHP 在建立动态 Web 应用程序
时却出现了问题, 好比一旦应用程序 state
发生了改变, 整个程序将会从新 render
, 这必将致使用户失去以前存储在 DOM
中的 全部数据. 这让 Facebook 的 Ads Org
团队不得不深思: 为何要从新渲染整个 Page, 只由于其中一个 state 的改变
? 他们及时地意识到这个问题, 这样的 Web 应用程序将对将来的用户体验形成严重的干扰.git
2011 年, Facebook 高级软件工程 Jordan Walke
开始着手解决这个问题: 如何让 Web 应用程序更加高效
, 更好地提高用户体验. 就这样, 一个用于构建用户界面的 JavaScript 库诞生了.github
就在当时, Instagram
想用 React 来构建他们的网站, 然而, 却遇到了不少的问题, 好比 React 跟 Facebook 的 stack 联系可谓十分紧密. 但他们并无放弃, 反而作了不少的工做, 他们但愿, 从此全世界的开发者都会庆幸有 React 这么棒的东西算法
2013 年 5 月, React
在美国 JSConf 开源
. 自那之后, 全世界的开发者都很快地将 React 投入到了生产环境中, 像 Trello, Slack, Docker, Airbnb, Khan Academy, New York Times 这些公司都冲在了前列.浏览器
2015 年 4 月, Facebook 发布了关于使用 React 的专利
, 说: 只要不起诉咱们专利侵权, 咱们就免费给你使用该软件. 你能够点击这里阅读关于专利的更多内容.安全
为了搞清楚这个, 咱们假设有一个对象, 它有不少个属性, 而后, 咱们去修改其中的一个属性的值, 这时, React Virtual Document Object Model
的高效 Diff
算法就起做用了, 它会首先快速识别出哪些属性发生了改变, 并且它将这个过程的复杂度控制在了 O(n)
, 接下来就是很是了不得的 reconciliation
操做, 它只会对界面上真正发生变化的部分
进行实际的 DOM
操做, 而不是整个 DOM, 这让咱们能够无需担忧性能问题而毫无顾忌的随时刷新整个页面了, 就问屌不屌.服务器
React 能够很优雅地实现 Server-Side Rendering
. 即当用户向应用程序发送请求时, 服务器会将其所须要的组件渲染成 HTML 字符串
, 而后把它返回给浏览器, 以后, 浏览器直接解析 HTML 就行. 这样不只缩短了响应时间
, 提高了用户体验, 并且有利于 SEO
, 最后, 还给开发者带来了组件式开发
和代码同构
的便利.架构
React Native
于 2015 年发布. 它支持开发者用 JavaScipt
和 React
构建真正 native 的 Android 和 iOS 应用. 这样, 咱们就不须要再去拼命地学习 Java
和 Objective-C
了.
React VR
在最近的 F8 Developer Conference
上发布. 它容许用户只用 JavaScipt 就能构建 virtual reality (VR)
应用. React VR 还能用 WebGL
和 WebVR
给用户带来完美的 VR 体验. 最后, 跟 React 同样, 开发者也能够采用声明组件
的方式.
React Fiber
将在 React 16
中闪亮登场, 最初于 2016 年 7 月公开发布, 它是 Facebook 开发的一个全新的架构
, 不只包含新的协调引擎
,并且提供了可串联使用的全新渲染器
. 该架构可向后兼容
,完全重写了 React 的协调(Reconciliation
)算法, 蕴含着过去多年来 Facebook 不断改进的工做成果. 你能够访问该连接跟进发布.
react-primitives
是 Leland Richardson
建立的一个库. 该库提供了一套理想的 primitives
让不一样平台中的 React 应用程序均可以使用.
若是你瞬间对 React 产生了浓厚的兴趣, 那么就快点击这里展开你的 React 生涯吧.