1

Stack Overflow Trends 中快速搜索 React 的技术趋势, 可以清楚地发现 20142017 年 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 年发布. 它支持开发者用 JavaSciptReact 构建真正 native 的 Android 和 iOS 应用. 这样, 我们就不需要再去拼命地学习 JavaObjective-C 了.

React VR

React VR 在最近的 F8 Developer Conference 上发布. 它允许用户只用 JavaScipt 就能构建 virtual reality (VR) 应用. React VR 还能用 WebGLWebVR 给用户带来完美的 VR 体验. 最后, 跟 React 一样, 开发者也可以采用声明组件的方式.

React Fiber

React Fiber 将在 React 16 中闪亮登场, 最初于 2016 年 7 月公开发布, 它是 Facebook 开发的一个全新的架构, 不仅包含新的协调引擎,而且提供了可串联使用的全新渲染器. 该架构可向后兼容,彻底重写了 React 的协调(Reconciliation)算法, 蕴含着过去多年来 Facebook 不断改进的工作成果. 你可以访问该链接跟进发布.

React Primitives

react-primitivesLeland Richardson 创建的一个库. 该库提供了一套理想的 primitives 让不同平台中的 React 应用程序都可以使用.

总结

如果你瞬间对 React 产生了浓厚的兴趣, 那么就快点击这里展开你的 React 生涯吧.

原文链接: The evolution of React (FISAYO AFOLAYAN)


枫上雾棋
1.5k 声望121 粉丝

[链接]