十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這篇文章將為大家詳細(xì)講解有關(guān)react可以用來做什么,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
react是一個(gè)用于構(gòu)建用戶界面的JAVASCRIPT庫(kù);React負(fù)責(zé)UI層面的展現(xiàn);React中的數(shù)據(jù)流是沿著組件樹從上到下單向流動(dòng)的;React擁有較高的性能,代碼邏輯非常簡(jiǎn)單。
怎么理解react?
隨著Facebook開源了React Native for Android,React的前景似乎更加光明。它從最早的UI框架慢慢演變成了一套web應(yīng)用的解決方案,并且它衍生出來的React Native更是承載著宏偉的目標(biāo):learn once, write anywhere。這對(duì)前端來說似乎是種不可抗拒的吸引力。
React有三個(gè)關(guān)鍵詞:
- Just the ui
- virtual dom
- data flow
要理解React,我從它的這三個(gè)關(guān)鍵詞入手。
2.1 Just the ui
React 負(fù)責(zé)UI層面的展現(xiàn),盡管很多人用React作[MVC]架構(gòu)中的View層,但這并不是React的本意。
一般的情況下,我們?cè)陂_發(fā)過程中,通常會(huì)使用模板或者直接使用HTML來構(gòu)建UI,而HTML是靜態(tài)的,使用模板在大多數(shù)情況下是可以滿足需求的,但是在復(fù)雜的邏輯情境中就顯得有些吃力了,過多的if else或者邏輯控制在模板里,都會(huì)讓代碼變得難以維護(hù),當(dāng)然這還是說整個(gè)項(xiàng)目中使用統(tǒng)一的模板的情況下。
React換了一種思路解決問題,它把UI拆分成組件,而不是通過模板引擎和展示邏輯,使得它可以易于拓展和維護(hù)。因此它引入了JSX這種語法規(guī)則,可以讓我們使用類似HTML的語法去寫js的函數(shù)調(diào)用。
2.2 virtual dom
瀏覽器渲染頁(yè)面的一般過程通常是這樣的:
加載html->生成DOM樹->解析css生成Render樹->生成頁(yè)面
那么React的virtual dom是怎么做的呢?
生成virtual dom->diff->必要的DOM更新
在這里面大部分的操作放在js中去完成,因?yàn)槲覀兌贾纃om操作是很昂貴的。所以在一般的情況下React的性能還是很不錯(cuò)的。
2.3 data flow
React中的數(shù)據(jù)流是沿著組件樹從上到下單向流動(dòng)的。
這里的data flow指的是一種應(yīng)用架構(gòu)的實(shí)現(xiàn)方式,比如說,數(shù)據(jù)存放在哪里,在哪里觸發(fā)事件,如何響應(yīng)用戶操作。它不是React提供的什么新功能,應(yīng)該是React構(gòu)建應(yīng)用的實(shí)踐。我們理解了之后的Flux或許就更加容易理解data flow這個(gè)概念了。
2.4 Flux overview
Flux是facebook配套R(shí)eact強(qiáng)推的一種應(yīng)用架構(gòu)思想。它利用數(shù)據(jù)的單向流動(dòng)為React的可復(fù)用的視圖組件提供了補(bǔ)充。
與React的數(shù)據(jù)流動(dòng)方式相同,在Flux架構(gòu)中,數(shù)據(jù)也是單向流動(dòng)的:
簡(jiǎn)單的說,所有的數(shù)據(jù)流動(dòng)都會(huì)經(jīng)過Dispatcher。Action可以通過action creator產(chǎn)生并被提供給dispatcher,但多數(shù)情況下action是通過用戶與views的交互產(chǎn)生。
在View層捕獲用戶的交互,產(chǎn)生一個(gè)Action,通過觸發(fā)注冊(cè)在Dispatcher上面的事件回調(diào),使得相關(guān)的Store響應(yīng)Action,然后會(huì)觸發(fā)到Store上面的onChange事件,進(jìn)一步的更新View。
數(shù)據(jù)流動(dòng)也始終是如上圖所示的單向流動(dòng)的。
關(guān)于“react可以用來做什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。