在
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 生涯吧.