vue-router 懶載入
阿新 • • 發佈:2018-11-08
懶載入:也叫延遲載入,即在需要的時候進行載入,按需載入。 那vue 為什麼需要懶載入呢? 使用 vue-cli構建的專案,在預設情況下,執行 npm run build 會將所有的 js程式碼打包為一個整體,這個檔案會異常的大,可能是幾兆或者是十幾兆,載入得會很慢,所以我們需要分模組打包,把不同路由對應的元件分割成不同的程式碼塊。把我們想要組合在一起的元件打包到一個 chunk塊中去,相同 chunk名字的模組將會打包到一起。然後當路由被訪問的時候才載入對應的元件,這樣就更高效了。
以前的引用元件的方式可能是這樣:
1 import Vue from 'vue' 2 import Router from 'vue-router' 3 4 // 引入vue元件 5 import Manage from '@/page/admin/Manage' 6 import Login from '@/page/admin/Login'
通過webpack提供的require.ensure()技術引用,實現懶載入
1 const Login= r => require.ensure([], () => r(require('@/page/admin/Login')), 'chunkName1');2 const Manage = r => require.ensure([], () => r(require('@/page/admin/Manage')), 'chunkName2');
最後將元件配置到路由中
1 export default new Router({ 2 routes:[{ 3 path: '/', 4 name: 'Login', 5 component: Login // vue元件 6 }, 7 { 8 path: '/Manage',9 name: 'Manage', 10 component: Manage, 11 } 12 })
vue-router 官方是通過import() 的方式實現懶載入,(需要webpack > 2.4),詳細參照官方文件:
https://router.vuejs.org/zh/guide/advanced/lazy-loading.html