1. 程式人生 > >vue-router 懶載入

vue-router 懶載入

     懶載入:也叫延遲載入,即在需要的時候進行載入,按需載入。 那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