這篇文章主要介紹“html5異步加載路由組件的方法”,在日常操作中,相信很多人在html5異步加載路由組件的方法問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”html5異步加載路由組件的方法”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
創(chuàng)新互聯(lián)建站是專(zhuān)業(yè)的龍勝網(wǎng)站建設(shè)公司,龍勝接單;提供成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行龍勝網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
首先需要注意的是路由。我們把todo相關(guān)的路由定義在一個(gè)文件中,然后在app的路由定義中把所有路由合并到一起。todo.routes.ts 的內(nèi)容如下:
然后在 app.routes.ts 中定義一個(gè)路由模塊:
最后,在AppModule里面引入這個(gè)路由模塊。
Angular的路由模塊已經(jīng)提供了 loadChildren 定義可以直接幫我們實(shí)現(xiàn)該功能。下面就是新的app路由定義。
在這里,我們對(duì)于 todo 路徑,交給 app/todo/todo.module 里面的 TodoModule 模塊處理。而在 TodoModule 模塊里,已經(jīng)有一個(gè)子路由的定義。
最后,再修改 app.module.ts ,保證它里面不再引入 TodoModule 。如此一來(lái),我們?cè)谥髂KAppModule里面,沒(méi)有引入 todo 模塊的任何組件或服務(wù)。這樣就能在完全脫離 TodoModule 模塊的情況下,運(yùn)行主模塊的功能。當(dāng)用戶(hù)打開(kāi) /todo 里面的url時(shí),就加載 app/lazy/lazy.module 里面的 LazyModule 模塊,并交由它來(lái)處理響應(yīng)的url。
create-react-app 環(huán)境 webpack自動(dòng)分片打包
需要babel支持import語(yǔ)法
import ("").then(
ChildB=>console.log(ChildB)
)
方式 const Child=asyncComponent(()=>import(""))
asyncComponent函數(shù)需要自行封裝
通過(guò)第三方插件實(shí)現(xiàn)react-loadable
路由 <Route path=.. component={Home}/> 路由懶加載
原理:
利用webpack對(duì)代碼進(jìn)行分割是懶加載的前提,懶加載就是異步調(diào)用組件,需要時(shí)候才下載,
告訴webpack把組件打包成塊,告訴路由激活時(shí)觸發(fā)一個(gè)函數(shù),函數(shù)再加載組件,加載時(shí)會(huì)請(qǐng)求組件的塊代碼,塊代碼會(huì)插入當(dāng)前組件的樣式。實(shí)現(xiàn)流程如下:
1、webpack配置:
output: chunkFilename:'chunks/[name]-[chunkhash:8].js'
解釋: build之后的代碼更便于識(shí)別
2、路由配置:
const home=()=>import( "");
注意:import 導(dǎo)入 需要安裝 babel-plugin-syntax-dynamic-import ,import會(huì)被提升,配置 babelrc "plugins": ["syntax-dynamic-import"]
解釋?zhuān)簑ebpackChunkName: "group-home" 給塊命名 | 同名會(huì)拆到一個(gè)塊,可減少請(qǐng)求次數(shù)
3、組件內(nèi)部注冊(cè)異步組件:
const navbar=()=>import( "");
注冊(cè)組件: components:{navbar}
navbar 不異步的話(huà),代碼會(huì)打到app.js,而不是home塊或者navbar塊。
到此,關(guān)于“html5異步加載路由組件的方法”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
網(wǎng)頁(yè)標(biāo)題:html5異步加載路由組件的方法
鏈接地址:http://aaarwkj.com/article18/pjccdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、外貿(mào)網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、移動(dòng)網(wǎng)站建設(shè)、ChatGPT、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)