在
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 生涯吧.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。