您好,登錄后才能下訂單哦!
前言
路由懶加載在訪問頁面的時候非常重要,能夠提高首頁加載速度,避免出現(xiàn)加載時候白頁,如果沒有懶加載,webpack打包后的文件會非常大。
1、import按需加載(常用)
允許將不同的組件打包到一個異步塊中,需指定了相同的webpackChunkName。
把組件按組分塊
const A = () => import(/* webpackChunkName: "group-A" */ '@/A/A.vue') const B = () => import(/* webpackChunkName: "group-A" */ '@/A/B.vue') const C = () => import(/* webpackChunkName: "group-A" */ '@/A/C.vue')
注意:如果使用的是 babel,需要安裝syntax-dynamic-import插件,才能使 babel 可以正確地解析語法。
2、vue異步組件
使用vue的異步組件 , 實現(xiàn)按需加載,每個組件生成一個js文件,實現(xiàn)組件的懶加載。
/* vue異步組件 */ { path: '/A', name: 'A', component: resolve => require(['@/components/A'],resolve) }
3、webpack提供的require.ensure()
vue-router配置路由,使用webpack的require.ensure技術(shù),實現(xiàn)按需加載。
這種情況下,多個路由指定相同的chunkName,會合并打包成一個js文件。
語法: require.ensure(dependencies: String[], callback: function([require]), [chunkName: String])
dependencies: 依賴的模塊數(shù)組
callback: 回調(diào)函數(shù),該函數(shù)調(diào)用時會傳一個require參數(shù)
chunkName: 模塊名,用于構(gòu)建時生成文件時命名使用
const A= resolve => require.ensure([], () => resolve(require('@/components/A')), 'A');
注意:requi.ensure的模塊只會被下載下來,不會被執(zhí)行,只有在回調(diào)函數(shù)使用require(模塊名)后,這個模塊才會被執(zhí)行。
總結(jié)
到此這篇關(guān)于vue實現(xiàn)路由懶加載的3種方法示例的文章就介紹到這了,更多相關(guān)vue路由懶加載內(nèi)容請搜索億速云以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持億速云!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。