vue路由按需載入(路由懶載入

2021-10-07 18:23:21 字數 1669 閱讀 3907

目前有三種方式實現路由元件的懶載入,分別是:

把路由配置,進行修改

​ path: 『/shopcar』,

​ name: 『shopcar』,

component: resolve => require([』@/pages/shopcar』],resolve)

1)、執行是開啟chrome的network,就會看到進入路由 /shopcar 時,會多出另外 乙個js檔案。一般是0.js或者1.js

2)、用npm run build打包時,wepback就會多打了乙個 js檔案(如:0.b5a82d6947b2e30edcc8.js),這個js檔案就是把shopcar檔案進行了單獨打包。同樣的在network裡,就會看到進入路由 /shopcar 時,多出乙個單獨的js檔案的請求

注:這種方式,webpack會把每個非同步元件單獨打成乙個js檔案。

主要是把原來的引入方式進行修改 ,路由配置就不用改了:

1、不指定webpackchunkname,每個元件單獨打乙個js檔案

原來是:import shopcar from 『@/pages/shopcar』

修改後:const shopcar = () => import(』@/pages/shopcar』);

​ 修改後的做法是定義了乙個函式,由於函式不呼叫不執行,所有,一開始時,並不會引入該元件,只有路由跳轉時才會呼叫該函式。

2、指定webpackchunkname,相同的webpackchunkname就會打在同乙個js檔案裡

1)、以下兩個元件的webpackchunkname相同,所以,打在乙個js檔案裡

const shopcar = () => import(/* webpackchunkname: 『demot』 */ 『@/pages/shopcar』);

const goodsdetailpage = () => import(/* webpackchunkname: 『demot』 */ 『@/pages/goodsdetailpage』);

2)、下面這個元件的webpackchunkname和上面兩個不一樣,所以,單獨打在乙個js檔案裡

const login = () => import(/* webpackchunkname: 『demoty』 */ 『@/pages/login』);

這種方式,只改路由配置即可。

如:​ path: 『/goodsdetailpage』,

​ name: 『goodsdetailpage』,

​ component: r => require.ensure(, () => r(require(』@/pages/goodsdetailpage』)), 『demot』)

​ path: 『/login』,

​ name: 『login』,

​ component: r => require.ensure(, () => r(require(』@/pages/login』)), 『demot』)

​ path: 『/shopcar』,

​ name: 『shopcar』,

​ component: r => require.ensure(, () => r(require(』@/pages/shopcar』)), 『demoty』)

以上**中,我把login和goodsdetailpage使用了相同的chunkname

路由懶載入(按需載入)

比較常用的import 一 為什麼要使用路由懶載入 在單頁應用中,如果沒有應用懶載入,運用webpack打包後的檔案將會異常的大,造成進入首頁時,需要載入的內容過多,延時過長,不利於使用者體驗,運用懶載入可以將頁面進行劃分,按需載入頁面,可以分擔首頁所承擔的載入壓力,減少載入用時。二 定義 懶載入簡...

vue路由懶載入,元件按需載入

懶載入也叫延遲載入,即在需要的時候進行載入,隨用隨載。在單頁應用中,如果沒有應用懶載入,運用webpack打包後的檔案將會異常的大,造成進入首頁時,需要載入的內容過多,延時過長,不利於使用者體驗,而運用懶載入則可以將頁面進行劃分,需要的時候載入頁面,可以有效的分擔首頁所承擔的載入壓力,減少首頁載入用...

vue專案實現路由按需載入 路由懶載入 的3種方式

vue非同步元件 es提案的import webpack的require,ensure 1 vue非同步元件技術 非同步載入 vue router配置路由 使用vue的非同步元件技術 可以實現按需載入 但是,這種情況下乙個元件生成乙個js檔案 vue非同步元件技術 元件懶載入方案二 路由懶載入 使用...