React 演化史

Stack Overflow Trends 中快速搜索 React 的技術趨勢, 能夠清楚地發現 20142017 年 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 的專利, 說: 只要不起訴咱們專利侵權, 咱們就免費給你使用該軟件. 你能夠點擊這裏閱讀關於專利的更多內容.安全

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)

相關文章
相關標籤/搜索