【Vue】路由按需載入(路由懶載入) component: resolve => require([‘../pages/home.vue‘], resolve)

Milk595發表於2020-10-20

Vue 路由按需載入(路由懶載入) component: resolve => require([’…/pages/home.vue’], resolve)

vue非同步元件技術 ==== 非同步載入
vue-router配置路由 , 使用vue的非同步元件技術 , 可以實現按需載入
但是,這種情況下一個元件生成一個js檔案

import Vue from 'vue'
import VueRouter from 'vue-router'
// "@"相當於".."
import Detail from '../pages/goodsDetail'
import Msg from '../components/message.vue'
 
// 使用路由
Vue.use(VueRouter)
 
export default new VueRouter({
  mode: 'history',
  routes: [
    {
      // 進行路由配置,規定'/'引入到home元件
      path: '/',
      component: resolve => require(['../pages/home.vue'], resolve),
      meta: {
        title: 'home'
      }
    },
    {
      path: '/msg',
      component: Msg
    },
    {
      path: '/detail',
      component: Detail,
      children: [
        {
          path: 'msg',
          component: Msg
        }
      ]
    }
  ]
})
 component: resolve => require(['../pages/home.vue'], resolve)

如果用import引入的話,當專案打包時路由裡的所有component都會打包在一個js中,造成進入首頁時,需要載入的內容過多,時間相對比較長

當你用require這種方式引入的時候,會將你的component分別打包成不同的js,載入的時候也是按需載入,只用訪問這個路由網址時才會載入這個js

打包的時候看看目錄結構就明白

相關文章