react是一個用來建立使用者介面的JAVASCRIPT函式庫;React負責UI層面的展現;React中的資料流是沿著元件樹從上到下單向流動的;React擁有較高的效能,程式碼邏輯非常簡單。
本教學操作環境:windows7系統、react17.0.1版本、Dell G3電腦。
相關推薦:《react教學》
怎麼理解react?
隨著Facebook開源了React Native for Android ,React的前景似乎更加光明。它從最早的UI框架慢慢演變成一套web應用的解決方案,而它衍生出來的React Native更是承載著宏偉的目標:learn once, write anywhere。這對前端來說似乎是種不可抗拒的吸引力。
React有三個關鍵字:
- Just the ui
- virtual dom
- data flow
#要理解React,我從它的這三個關鍵字開始。
2.1 Just the ui
React 負責UI層面的展現,儘管很多人用React作[MVC]架構中的View層,但這並不是React的本意。
一般的情況下,我們在開發過程中,通常會使用模板或直接使用HTML來建構UI,而HTML是靜態的,使用模板在大多數情況下是可以滿足需求的,但是在複雜的邏輯情境中就顯得有些吃力了,過多的if else或邏輯控制在模板裡,都會讓程式碼變得難以維護,當然這還是說整個專案中使用統一的模板的情況下。
React換了一個想法解決問題,它把UI拆分成元件,而不是透過模板引擎和展示邏輯,使得它可以易於拓展和維護。因此它引入了JSX這種語法規則,可以讓我們使用類似HTML的語法去寫js的函數呼叫。
2.2 virtual dom
瀏覽器渲染頁面的一般過程通常是這樣的:
載入html->產生DOM樹->解析css產生Render樹- >生成頁面
那麼React的virtual dom是怎麼做的呢?
產生virtual dom->diff->必要的DOM更新
#在這裡大部分的操作放在js中去完成,因為我們都知道dom操作是很昂貴的。所以在一般的情況下React的效能還是很不錯的。
2.3 data flow
React中的資料流是沿著元件樹從上到下單向流動的。
這裡的data flow指的是一種應用架構的實作方式,比如說,資料存放在哪裡,在哪裡觸發事件,如何回應使用者操作。它不是React提供的什麼新功能,應該是React建置應用程式的實踐。我們理解了之後的Flux或許就更容易理解data flow這個概念了。
2.4 Flux overview
Flux是facebook配套React強推的應用架構思想。它利用資料的單向流動為React的可重複使用的視圖元件提供了補充。
與React的資料流動方式相同,在Flux架構中,資料也是單向流動的:
簡單的說,所有的資料流動都會經過Dispatcher。 Action可以透過action creator產生並提供給dispatcher,但多數情況下action是透過使用者與views的互動產生。
在View層捕捉使用者的交互,產生一個Action,透過觸發註冊在Dispatcher上面的事件回調,使得相關的Store回應Action,然後會觸發到Store上面的onChange事件,進一步的更新View。
資料流動也總是如上圖所示的單向流動的。
以上是怎麼理解react的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

JavaScript不需要安裝,因為它已內置於現代瀏覽器中。你只需文本編輯器和瀏覽器即可開始使用。 1)在瀏覽器環境中,通過標籤嵌入HTML文件中運行。 2)在Node.js環境中,下載並安裝Node.js後,通過命令行運行JavaScript文件。

如何在Quartz中提前發送任務通知在使用Quartz定時器進行任務調度時,任務的執行時間是由cron表達式設定的。現�...

在JavaScript中如何獲取原型鏈上函數的參數在JavaScript編程中,理解和操作原型鏈上的函數參數是常見且重要的任�...

在微信小程序web-view中使用Vue.js動態style位移失效的原因分析在使用Vue.js...

在Tampermonkey中如何對多個鏈接進行並發GET請求並依次判斷返回結果?在Tampermonkey腳本中,我們經常需要對多個鏈...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

記事本++7.3.1
好用且免費的程式碼編輯器