什么是懶加載
成都創(chuàng)新互聯(lián)是一家專注于做網(wǎng)站、網(wǎng)站建設(shè)與策劃設(shè)計,郎溪網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:郎溪等地區(qū)。郎溪做網(wǎng)站價格咨詢:18982081108
懶加載也叫延遲加載,即在需要的時候進行加載,隨用隨載。
為什么需要懶加載
在單頁應用中,如果沒有應用懶加載,運用webpack打包后的文件將會異常的大,造成進入首頁時,需要加載的內(nèi)容過多,延時過長,不利于用戶體驗,而運用懶加載則可以將頁面進行劃分,需要的時候加載頁面,可以有效的分擔首頁所承擔的加載壓力,減少首頁加載用時
如何與webpack配合實現(xiàn)組件懶加載
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支持的異步加載方法
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中有動態(tài)注冊模塊方法,同時也是加上import
const store = new Vuex.Store() import('./store/test').then(testModule => { store.registerModule('test', testModule) })
總結(jié)
在一般項目中,我們按照router和components層面分割(或者只使用router分割)就足夠了。大型項目可能三者都會用到,但用法都很簡單,不是么?
好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對創(chuàng)新互聯(lián)的支持。