webpack > 2的時代,vue作代碼分割懶加載更加的easy,不須要loader,不須要require.ensure。
import解決一切。vue
Vue代碼分割懶加載包含以下幾個層級:
一、 組件層級分割懶加載
二、 router路由層級
三、 Vuex 模塊webpack
//全局組件 Vue.component('AsyncComponent', () => import('./AsyncComponent')) //局部註冊組件 new Vue({ // ... components: { 'AsyncComponent': () => import('./AsyncComponent') } }) // 若是不是default導出的模塊 new Vue({ // ... components: { 'AsyncComponent': () => import('./AsyncComponent').then({ AsyncComponent }) => AsyncComponent } })
const AsyncComponent= () => import('./AsyncComponent') new VueRouter({ routes: [ { path: '/test', component: AsyncComponent} ] })
const store = new Vuex.Store() import('./store/test').then(testModule => { store.registerModule('test', testModule) })
在通常項目中,咱們按照router和components層面分割(或者只使用router分割)就足夠了。大型項目可能三者都會用到,但用法都很簡單,不是麼?web