1. 程式人生 > >vue專案實現路由按需載入(路由懶載入)的3種方式

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

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

  1. vue非同步元件
  2. es提案的import()
  3. webpack的require,ensure()

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

/* vue非同步元件技術 */
{
  path: '/home',
  name: 'home',
  component: resolve => require(['@/components/home'],resolve)
},{
  path
: '/index', name: 'Index', component: resolve => require(['@/components/index'],resolve)
},{ path: '/about', name: 'about', component: resolve => require(['@/components/about'],resolve) }
  1. 元件懶載入方案二 路由懶載入(使用import)
// 下面2行程式碼,沒有指定webpackChunkName,每個元件打包成一個js檔案。
/* const Home = ()
=>
import('@/components/home') const Index = () => import('@/components/index') const About = () => import('@/components/about') */ // 下面2行程式碼,指定了相同的webpackChunkName,會合並打包成一個js檔案。 把元件按組分塊 const Home = () => import(/* webpackChunkName: 'ImportFuncDemo' */ '@/components/home') const Index = () => import
(/* webpackChunkName: 'ImportFuncDemo' */ '@/components/index') const About = () => import(/* webpackChunkName: 'ImportFuncDemo' */ '@/components/about')
{
  path: '/about',
  component: About
}, {
  path: '/index',
  component: Index
}, {
  path: '/home',
  component: Home
}
  1. webpack提供的require.ensure()
    vue-router配置路由,使用webpack的require.ensure技術,也可以實現按需載入。
    這種情況下,多個路由指定相同的chunkName,會合並打包成一個js檔案。
/* 元件懶載入方案三: webpack提供的require.ensure() */
{
  path: '/home',
  name: 'home',
  component: r => require.ensure([], () => r(require('@/components/home')), 'demo')
}, {
  path: '/index',
  name: 'Index',
  component: r => require.ensure([], () => r(require('@/components/index')), 'demo')
}, {
  path: '/about',
  name: 'about',
  component: r => require.ensure([], () => r(require('@/components/about')), 'demo-01')
}