首頁 > web前端 > js教程 > 關於Vue程式碼分割懶加載

關於Vue程式碼分割懶加載

小云云
發布: 2017-12-18 13:07:37
原創
1966 人瀏覽過

懶加載也叫延遲加載,即在需要的時候進行加載,隨用隨載。本文主要為大家介紹了關於Vue程式碼分割懶載入的實作方法,文中透過範例程式碼介紹的非常詳細,對大家的學習或工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。希望能幫助大家。

為什麼需要懶加載

在單頁應用程式中,如果沒有應用懶加載,運用webpack打包後的文件將會異常的大,造成進入首頁時,需要加載的內容過多,延時過長,不利於使用者體驗,而運用懶加載則可以將頁面進行劃分,需要的時候加載頁面,可以有效的分擔首頁所承擔的加載壓力,減少首頁加載用時

如何與webpack配合實作元件懶載入

1、在webpack設定檔中的output路徑設定chunkFilename屬性

output: {
path: resolve(__dirname, 'dist'),
filename: options.dev ? '[name].js' : '[name].js?[chunkhash]',
chunkFilename: 'chunk[id].js?[chunkhash]',
publicPath: options.dev ? '/assets/' : publicPath
},
登入後複製

chunkFilename路徑將會作為元件懶載入的路徑

2.配合webpack支援的非同步載入方法

  • resolve => require([URL], resolve), 支持性好

  • ( ) => system.import(URL) , webpack2官網上已經聲明將逐漸廢除, 不建議使用

  • () => import(URL), webpack2官網推薦使用,屬於es7範疇, 需要配合babel的syntax-dynamic-import插件使用, 具體使用方法如下

  • ##
npm install --save-dev babel-core babel-loader babel-plugin-syntax-dynamic-import babel-preset-es2015
登入後複製
use: [{
loader: 'babel-loader',
options: {
presets: [['es2015', {modules: false}]],
plugins: ['syntax-dynamic-import']
}
}]
登入後複製
引言

##而在webpack > 2的時代,vue做程式碼分割懶載入更加的easy,不需要loader,不需要require.ensure。


import解決一切。


分割層級


Vue程式碼分割懶載入包含以下幾個層級:


      1、 元件層級分割懶載


#      2、 router路由層級


      3、 Vuex 模塊


組件層級代碼分割

//全局组件
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}
 ]
})
登入後複製

Vuex 模組程式碼分割,vuex中有動態註冊模組方法,同時也是加上import
const store = new Vuex.Store()

import('./store/test').then(testModule => {
 store.registerModule('test', testModule)
})
登入後複製

總結


在一般專案中,我們依照router和components層面分割(或只使用router分割)就足夠了。大型專案可能三者都會用到,但用法都很簡單,不是麼?

相關推薦:

用Js實作懶載入和跨域的實作步驟

JavaScript實作圖片的懶載入方法介紹

圖片的懶​​載入問題

以上是關於Vue程式碼分割懶加載的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板