web前端學習:React是什麼,為什麼要使用它?

JavaScript 瀏覽器 PHP Facebook 算法 程序員日常生活 2019-05-31

React是Facebook內部的一個JavaScript類庫,已於1年開源,可用於創建Web用戶交互界面。它引入了一種新的方式來處理瀏覽器DOM。那些需要手動更新DOM、費力地記錄每一個狀態的日子一去不復返了——這種老舅的方式既不具備擴展性,又很難加入新的功能,就算可以,也是有著冒著很大的風險。React使用很新穎的方式解決了這些問題。你只需要聲明地定義各個時間點的用戶界面,而無序關係在數據變化時,需要更新哪一部分DOM。在任何時間點,React都能以最小的DOM修改來更新整個應用程序。

React引入了一些激動人心的新概念,向現有的一些最佳實踐發起了挑戰。學習這些概念,將幫助你理解它們的優勢,創建具備高擴展性的單頁面應用(SPA)。React把主要的注意力放在了應用的“視圖”部分,沒有限定與服務端交互和代碼組織的方式。

背景介紹:

在web應用開發的早期,構建Web應用的唯一方案就是向服務器發送請求,然後服務端響應請求並且返回一個完整的頁面。從開發的角度上講這種方法非常簡單,因為開發者無須關心在瀏覽器端發生了什麼。

像PHP這種語言,更加簡化了這種開發方式。使用PHP開發功能組件也很容易,這有助於開發者重用代碼,掌握應用程序的行為。開發的簡單性使得PHP成為了一門非常流行的Web應用開發語言。

不過,使用這種開發方式很難打造出極佳的用戶體驗。因為無論每次用戶想要做點什麼,都需要向服務端發送請求並等待服務端的響應,這會導致用戶失去在頁面上所積累的狀態。

為了實現更好的用戶體驗,人們開始開發類庫,使用JavaScript在瀏覽器端渲染應用。這些類庫使用的方法也不盡相同簡單的會使用帶參數的模板,複雜的就完全掌握整個應用。隨著開發者在越來越大的應用中使用這些類庫,應用也變得越來越難於把握,因為這些應用是一系列互相作用的事件的結果。與PHP那樣傳統的應用開發方式比起來,這種客戶端應用很難做好。

React發源自Facebook的PHP框架XHP的一個分支。XHP作為一個PHP框架,旨在每次有請求進來時渲染整個頁面。react的產生就是為了把這種重新渲染整個頁面的PHP式工作流帶到客戶端應用中來。

React本質上只關心兩件事:

1.更新DOM;

2.響應事件。

React不處理Ajax、路由和數據存儲,也不規定數據組織的方式。它不是一個Model-View-Controller框架。如果非要問它是什麼,他就是MVC裡的“V”。React的精簡允許你將它集成到各種各樣的系統中 。

每次狀態改變時,使用JavaScript重新渲染整個頁面會非常慢,這應該歸咎於讀取和更新DOM的性能問題。React運用一個虛擬的DOM實現了一個非常強大的渲染系統,在React中對DOM只更新不讀取。

工作狀態:

React以渲染函數為基礎。這些函數讀入當前的狀態,將其轉換為目標頁面上的一個虛擬表現。只要React被告知狀態有變化,他就會重新運行這些函數,計算出頁面的一個新的虛擬表現,接著自動把結果轉換成必要的DOM更新來反映新的表現。

這種方式看上去應該比通常的JavaScript方案——按需要更新每一個元素——要慢,但是React確實是這麼做的:它使用了非常高效的算法,計算出虛擬頁面當前版本和新版間的差異,基於這些差異對DOM進行必要的最少更新。React贏就贏在了最小化了重繪,並且避免了不必要的DOM操作,這兩點都是公認的性能瓶頸。

做互聯網行業薪資高是很正常的,多年編程經驗,今年1月整理了一批2019年最新WEB前端教學視頻,不論是零基礎想要學習前端還是學完在工作想要提升自己,這些資料都會給你帶來幫助,從HTML到各種框架,幫助所有想要學好前端的同學,學習規劃、學習路線、學習資料、問題解答。只要關注我,後臺私信我【前端】兩個字,即可免費獲取,學習不怕從零開始,就怕從不開始。

相關推薦

推薦中...