前端,通常指web前端,是使用網(wǎng)頁技術(shù)呈現(xiàn)給用戶的統(tǒng)稱。前端應(yīng)用框架,是指能夠系統(tǒng)化、簡單化方便開發(fā)網(wǎng)頁應(yīng)用的庫。前端技術(shù)發(fā)展至今,主要細分為三大主流框架:React、Vue、Angular。React是由Facebook公司開發(fā)的擁有高效、靈活、邏輯簡單的前端JavaScript庫。dva是由阿里巴巴公司開發(fā)和維護,基于React框架為基礎(chǔ)開發(fā)的一種使用簡單、更貼近實際生產(chǎn)需要的前端應(yīng)用框架。dva前端應(yīng)用框架的出現(xiàn)改變了react框架在國內(nèi)難以簡單化、標準化、高效開發(fā)的難題。
dva框架的由來
React框架:React是漸進式UI庫。React中每個單元都是一個組件,每個組件有自己的狀態(tài),通過組件嵌套組件形成樹狀關(guān)系,React通過編譯并渲染頁面,當組件的狀態(tài)state發(fā)生改變時,React會重新計算出改變的那部分并更新UI。比如:頁面點擊了按鈕設(shè)置隱藏一個元素,React會只把這部分UI進行更新,并不會全量更新。因此,很多公司會選擇React作為基礎(chǔ)前端庫進行開發(fā)。
Redux狀態(tài)管理JavaScript庫:體積小、高性能的狀態(tài)管理庫。所有的狀態(tài)改變由庫進行處理,有效避免人為的邏輯錯誤,并支持回退等功能。
React、Redux關(guān)聯(lián):在最初的react項目的開發(fā)中,是需要手動將react、redux關(guān)聯(lián)起來,才能更有效發(fā)揮react的作用。因此,各大社區(qū)也出現(xiàn)了關(guān)聯(lián)的js庫,如redux-thunk、redux-saga以及其他庫,但由于使用的庫不盡相同,使得react項目復雜度高、差異化很大,各大公司企業(yè)無法標準化、簡單化開發(fā)。特別在國內(nèi),中小企業(yè)需要快速、低成本、高效實現(xiàn)業(yè)務(wù)的迫切需求。
dva框架的由來:鑒于以上react項目不統(tǒng)一、復雜度高的問題,dva框架應(yīng)運而生。開發(fā)者只需要按dva的開發(fā)模式開發(fā)業(yè)務(wù)層代碼,就可以開發(fā)復雜應(yīng)用。
dva的工作原理
dva工作模式。開發(fā)者只需編寫業(yè)務(wù)代碼,dva框架底層進行編譯轉(zhuǎn)換,自動關(guān)聯(lián)react、redux,實現(xiàn)功能效果。
dva數(shù)據(jù)流向。通過捕獲用戶交互行為或者瀏覽器行為(如路由改變等)觸發(fā)的數(shù)據(jù)改變,通過dispatch函數(shù)發(fā)起一個action動作,如果是同步行為會直接通過Reducers動作處理函數(shù)改變State狀態(tài);如果是異步行為會先觸發(fā)Effects副作用然后流向Reducers動作處理函數(shù)最終改變State狀態(tài)。
dva的優(yōu)勢
- 數(shù)據(jù)流轉(zhuǎn)清晰,提高項目可維護性
- 開箱即用,降低學習成本,提高企業(yè)生產(chǎn)效率。
- 插件體系方便擴展,滿足個性化需要
dva的發(fā)展趨勢
插件多元化個性化,互助共享。dva具有完善的插件體系,在企業(yè)大規(guī)模開發(fā)后,會逐步形成自己的插件和標準。這更能夠貼切企業(yè)自身業(yè)務(wù)自身需要,促進不斷前進。一些龍頭企業(yè)能夠?qū)⑿袠I(yè)內(nèi)的通用解決方案進行插件共享,實現(xiàn)互助共享的良好氛圍。
dva融合umi框架簡化React開發(fā)。umi是一個可插拔的企業(yè)級react應(yīng)用框架,dva側(cè)重于數(shù)據(jù)流解決方案,通過兩者的有機融合,極大程度簡化React開發(fā)。也成為了目前業(yè)界普遍使用的模式。
最后
在當下前端技術(shù)飛速、多元發(fā)展的時期,dva前端應(yīng)用框架的出現(xiàn),更貼切企業(yè)開箱即用的迫切需要,讓企業(yè)能夠?qū)W⒂跇I(yè)務(wù)開發(fā),降低react相關(guān)技術(shù)棧的學習成本,提高開發(fā)效率,是難得的標準化、提高企業(yè)信息化步伐的優(yōu)秀框架。
以上是我的觀點,謝謝!