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