日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

React框架概述,react框架

我恰好在實際生產(chǎn)項目中使用過這三種框架 。隨著單頁應用(SPA)概念的日趨火熱 , React框架在設(shè)計和實踐中同樣也圍繞著SPA的概念來打造自己的技術(shù)棧體系 , 其中路由模塊便是非常重要的一個組成部分 。其實現(xiàn)在的前端工程師很多時候解決的不是樣式問題 , 而是協(xié)作和業(yè)務(wù)邏輯處理的問題 , 很少見一家公司會同時使用多套框架來實現(xiàn)業(yè)務(wù)功能 , 學習的有 , 實際項目中一般都是一套代碼擼一切 , 方便快捷產(chǎn)出高 。
如何結(jié)合好React框架的技術(shù)棧特性來進行路由模塊設(shè)計?

React框架概述,react框架


隨著單頁應用(SPA)概念的日趨火熱 , React框架在設(shè)計和實踐中同樣也圍繞著SPA的概念來打造自己的技術(shù)棧體系 , 其中路由模塊便是非常重要的一個組成部分 。它承載著應用功能分區(qū) , 復雜模塊組織 , 數(shù)據(jù)傳遞 , 應用狀態(tài)維護等諸多功能 , 如何結(jié)合好React框架的技術(shù)棧特性來進行路由模塊設(shè)計就顯得尤為重要 , 本文則以探索React動態(tài)路由設(shè)計最佳實踐作為切入點 , 分享下在實際項目開發(fā)中的心得與體會 。
為什么需要做動態(tài)路由動態(tài)路由:對于大型應用來說 , 一個首當其沖的問題就是所需加載的 JavaScript 的大小 。程序應當只加載當前渲染頁所需的 JavaScript 。有些開發(fā)者將這種方式稱之為 "代碼分拆(code-splitting)" — 將所有的代碼分拆成多個小包 , 在用戶瀏覽過程中按需加載 。1、首屏加載效率隨著項目的業(yè)務(wù)需求持續(xù)添加 , react中的代碼復雜度將面臨著持續(xù)上升的問題 , 同時由于react中的jsx和es6語法的文件在實際生產(chǎn)環(huán)境中 , 也會被babel-js重新編譯成瀏覽器所支持的基于ES5的語法模塊 , 各個模塊打體積將會變得非常的臃腫不堪 , 直接影響到頁面加載的等待時常 。
以下圖為例 , 如果不做處理 , 我們的業(yè)務(wù)模塊通常體積會達到兆級 , 這對首屏加載速率和用戶體驗的影響無疑是巨大的 。2、降低模塊間的功能影響react中的jsx無疑是一個很方便的設(shè)計 , 能讓開發(fā)者像寫html一樣來書寫虛擬dom , 但是它同樣也貫徹執(zhí)行著"all in js"的理念 , 最終構(gòu)建完成后所有的業(yè)務(wù)代碼都將打包到1-2個bundle文件中 , 這就等于將所有的功能模塊都集中到了一個物理文件中 , 如果遇到業(yè)務(wù)處理的復雜性 , 接口層變更 , 異常處理出錯等諸多代碼健壯性問題時 , 一個子模塊出現(xiàn)了錯誤 , 就很有可能導致用戶界面整體性出錯從而無法使用的風險 。
3、符合二八定律通常在一個應用中 , 最重要和高頻訪的功能模塊只占其中一小部分 , 約20% , 其余80%盡管是多數(shù) , 卻是次要的 。以后臺系統(tǒng)為例 , 普通業(yè)務(wù)人員通常使用的高頻模塊只有3-5個 , 但是業(yè)務(wù)系統(tǒng)通常會有各式各樣的權(quán)限設(shè)計 , 不同的權(quán)限映射著能訪問的路由模塊也不盡相同 , 雖然我們可以在用戶的數(shù)據(jù)訪問和路由地址上做攔截限制 , 但是同樣也需要對其能訪問的模塊資源進行限制 , 才能做到真正的按需加載 , 隨取隨用 。
4、工具體系支撐無論是react-router還是對應搭配的構(gòu)建工具webpack , 其中都有針對動態(tài)路由部分的設(shè)計與優(yōu)化 , 使用好了往往能起到事半功倍的效果 。簡化版實現(xiàn):bundle-loaderbundle-loader是webpack官方出品與維護的一個loader , 主要用來處理異步模塊的加載 , 將簡單的頁面模塊轉(zhuǎn)成異步模塊 , 非常方便 。

推薦閱讀