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

React框架概述,react框架( 二 )


1. 改造前頁面2. 在webpack.config.js中增加rules3. 在工程中使用帶 xxx.bunlde.js結(jié)尾的類型文件時 , 就會被bundle-loader識別并做編譯處理4. 創(chuàng)建LazyBundle.js文件 , 這個文件會用來調(diào)用被bundle-loader處理后的組件5. 對我們需要異步加載的組件函數(shù)進行二次封裝注:react-router3和4由于是不兼容升級 , 所以處理動態(tài)路由的方法也略有不同 , 在此列出了兩種版本下的處理方式可供參考6. 改造后頁面完成構(gòu)建后我們就可以從瀏覽器中看到 , 我們定制后的模塊已經(jīng)被能被支持異步加載了同時在webpack構(gòu)建中也能清晰地看到多了一個chunk:高階版實現(xiàn):dynamic-importsdynamic-imports是webpack在升級到2版本以后 , 對js的模塊處理進行了增強的 , 其中就有對require.ensure的改進 , 基于原生的Promise對象進行了重新實現(xiàn) , 采用了import()作為資源加載方法 , 將其看做一個分割點并將其請求的module打包為一個獨立的chunk 。
import()以模塊名稱作為參數(shù)并且返回一個Promise對象 , 具體介紹可以參考筆者之前寫過的翻譯文章Webpack2 升級指南和特性摘要 , 具體使用比對如下:結(jié)合import的高級特性 , 我們就可以省去bundle-loader的處理方式 , 直接在原生模塊上進行動態(tài)路由處理 , 具體設計實現(xiàn)如下:1.封裝一個高階組件 , 用來實現(xiàn)將普通的組件轉(zhuǎn)換成動態(tài)組件2.對我們需要用到的普通組件進行引入和包裝處理利用weback3中的Magic Comments對生成的chunk指定chunkName完成構(gòu)建后我們就可以從瀏覽器中看到 , 我們定制后的模塊也和之前一樣 , 被能被支持異步加載了同時在webpack構(gòu)建界面中的能看到多了一個chunk , 并且chunkName就是我們自定義的名稱 , 對于定位分析一些模塊問題時會非常管用 。
從中我們也不難發(fā)現(xiàn) , 相對于bundle-loader , dynamic-importsAsyncComponent高階組件的方式更為簡單靈活 , 同時對于現(xiàn)有的代碼改動也較小 , 故作為在實際開發(fā)中的首選方案使用 , 同時我們也推薦一個非常不錯的webpack的chunk分析工具webpack-bundle-analyzer , 方便查看每個異步路由中的構(gòu)建的具體模塊內(nèi)容 。
【React框架概述,react框架】One more thing:路由模塊的組織react-router功能強大 , 上手簡單 , 作為官方唯一指定的路由框架已經(jīng)成為了react應用開發(fā)中必備的部分 , 但是由于react天生組件化的原因 , 意味著react-router的配置文件中在實際使用中 , 會難免出現(xiàn)如下不佳場景:1、路由配置入口文件持續(xù)臃腫 , 文件越引越多2、路由配置會隨著業(yè)務嵌套越來越深 , 團隊協(xié)作開發(fā)時極易產(chǎn)生沖突3、非jsx寫法 , 模塊清晰簡單 , 但是會導致路由模塊和業(yè)務模塊耦合 , 不利于集中管理 , 同時無法明確表達出母子路由的嵌套關系 , 參見huge-apps問題來了:如何既保證路由模塊的清晰簡單 , 又能集中管理維護 , 還能支持嵌套定義和動態(tài)加載?借鑒python flask中的blueprint設計思路 , 重新實現(xiàn)路由模塊的劃分經(jīng)過前面的分析 , 我們不難發(fā)現(xiàn)react-router的路由配置模塊會隨著業(yè)務的深入變得越來越臃腫 , 其根本原因在于我們將所有的資源和配置信息都寫在了一個文件中 , 這和軟件設計中提倡的清晰一單一 , 低耦合高內(nèi)聚等指導原則是背道而馳的 , 為此我們針對路由模塊的劃分這塊進行了重構(gòu) , 改進方式如下:1、拆分routes.js入口文件將路由模塊的整體由一個routes.js文件拆成若干個彼此間互相獨立的子路由模塊文件模塊的拆分原則可以和業(yè)務功能劃分一一對應 , 逐步減少主配置中的內(nèi)容耦合 。

推薦閱讀