關(guān)于react的思考

react作為全球使用人數(shù)最多的前端框架,究竟有什么特點呢?本人總結(jié)歸納出以下6點:

  1. 聲明式開發(fā)
    react作為新一代流行的前端框架自然與舊一代流行的框架jquery有所不同。jquery以封裝了大量的dom操作api著稱,我們寫完一個jquery構(gòu)建的項目我們會發(fā)現(xiàn)其實頁面60%都是在做dom的獲取,這就是命令式編程。react則是數(shù)據(jù)驅(qū)動,改變視圖就是聲明、操作數(shù)據(jù)即可。用jquery做頁面好比我們要建一座大樓,我們必須手把手地教工人怎么一塊一塊砌磚成墻,要關(guān)注許多細節(jié)才能把樓建成;而react則是做一張設(shè)計圖,工人就按這個設(shè)計圖按部就班地建樓。這是既簡單高效的做法(當(dāng)然也不可否認jquery的優(yōu)勢,其做復(fù)雜交互以及兼容瀏覽器方面是難以取代的)
  2. 可以與其他框架共存
    在react中,其有一個根元素,比如是id為root的div,包裹了所有的元素,react只負責(zé)這塊內(nèi)容的dom渲染,我們可以在這個根元素同級再創(chuàng)建一個div,這個div內(nèi)的內(nèi)容則可以引入jquey,兩者互不影響
  3. 組件化
    react中推崇組件化開發(fā),把頁面拆分成許多小塊,css、js互不影響,大大提高了復(fù)用性與簡潔性
  4. 單向數(shù)據(jù)流
    組件化就難免遇到傳值問題,單向數(shù)據(jù)流指的是只能父組件傳遞給子組件數(shù)據(jù),子組件無法更改父組件的數(shù)據(jù)。若不是單向,可以試想,當(dāng)我們一個父組件對應(yīng)5個組件時,這5個組件都改了父組件的數(shù)據(jù),我們要如何判別?react增加這一限制無疑大大提高了代碼的可維護性
  5. 視圖層框架

    在小型項目中組件比較少,父子組件隔的層數(shù)比較少,相互傳值比較直接,但在大型項目中數(shù)據(jù)就難以維護了
    組件傳值

    就像上圖,一個圓圈代表一個組件,紫色組件要傳遞數(shù)據(jù)給箭頭所指的組件就要先傳遞數(shù)據(jù)給他的曾祖父組件,曾祖父在他的孫子組件,這樣傳遞數(shù)據(jù)會有很多冗余代碼也很復(fù)雜,無疑會令人很崩潰。因此就需要借助數(shù)據(jù)層組件比如redux,就像vue中的vuex一樣做全局數(shù)據(jù)狀態(tài)管理
  6. 函數(shù)式編程
    react用了jsx語法,組件中代碼都是放在一個個函數(shù)中的,這樣即可將復(fù)雜的代碼拆分成一個個函數(shù),不會混雜到一塊,很簡潔方便維護?,F(xiàn)在也推崇測試式編程,就是引入自動化測試,函數(shù)輸入?yún)?shù)返回預(yù)期值則測試通過,函數(shù)式編程則跟這個十分吻合

存在即合理,react框架展示了許多優(yōu)秀的編程思想,值得我們細細品味。這是本人的一些關(guān)于react的理解思考,在此做筆記,剛剛過去的秋招也遇到很多面試官會問所使用的vue、react、jquery的區(qū)別,現(xiàn)在想想就是要考察我們對框架是否深入理解,只有深入理解了才知道在什么場景用更合適高效,勤做總結(jié),有利于面試更有利于理解。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容