1. 程式人生 > >webpack基礎--程式碼分割和懶載入

webpack基礎--程式碼分割和懶載入

程式碼分割和懶載入

內建方法和Loader

require.ensure()

內建方法:require.ensure([dependencies], callback,errorCalback,chunkName) 動態載入程式碼
引數:
dependencies: 依賴項, 是一個數組, 不會執行
callback: 在這裡執行程式碼
errorCallback: 可省略
chunkName: 打包好的程式碼塊的名稱

require.include()

內建方法:require.include(chunkName) 載入第三方的或公共的程式碼塊, 但是不執行, 只是提前載入進來, 等到有引用它的程式碼塊出現時, 可以縮短載入時間.

ES 2015 Loader spec

import() 返回值是promise
import().then() 進行動態載入

webpack import function:import, 通過註釋的方式寫入引數
import(
/* webpackChunkName: async-chunk-name */
/* webpackMode: lazy */
moduleName
)

程式碼分割場景:

  1. 分離業務程式碼 和 第三方依賴
  2. 分離業務程式碼 和 業務公共程式碼 和 第三方依賴
  3. 分離首次載入 和訪問後加載的程式碼 (用於首屏載入)

準備頁面:
subpageA:

 import './publicModule.js'
 export default 'subpageA'

subpageB:

 import './publicModule.js'
 export default 'subpageB'

publicModule:

export default 'publicModule'

pageA:

 import './subPageA'
 import './subPageB'
 export default 'pageA'

###### 分離業務程式碼 和 第三方依賴
這裡寫圖片描述

###### 分離業務程式碼 和 業務公共程式碼 和 第三方依賴
將import 改為 require.ensure() 動態載入;
這裡寫圖片描述


這裡寫圖片描述

###### 多入口應用 程式碼分割和懶載入
這裡寫圖片描述

相關推薦

webpack基礎--程式碼分割載入

程式碼分割和懶載入 內建方法和Loader require.ensure() 內建方法:require.ensure([dependencies], callback,errorCalback,chunkName) 動態載入程式碼 引數: depend

webpack系類之程式碼分割載入

webpack實現程式碼方式是主要是通過模組的引入方式 1.require.ensure //進行程式碼分割 require.ensure(['lodash'],function(){ var _ = require('lodash');//

webpack4 系列教程(四): 單頁面解決方案--程式碼分割載入

本節課講解webpack4打包單頁應用過程中的程式碼分割和程式碼懶載入。不同於多頁面應用的提取公共程式碼,單頁面的程式碼分割和懶載入不是通過webpack配置來實現的,而是通過webpack的寫法和內建函式實現的。 目前webpack針對此項功能提供

程式碼分割載入(一)

為什麼需要程式碼分割?簡單來說:就是讓使用者在最快的速度拿到想要獲取的內容。程式碼分割不在webpack的配置用。而是內建在webpack的方法中:1、require.ensure方法/require.include2、es5 loader spll先來說說require.e

webpack優化之玩轉程式碼分割公共程式碼提取

前言 開發多頁應用的時候,如果不對webpack打包進行優化,當某個模組被多個入口模組引用時,它就會被打包多次(在最終打包出來的某幾個檔案裡,它們都會有一份相同的程式碼)。當專案業務越來越複雜,打包出來的程式碼會非常冗餘,檔案體積會非常龐大。大體積檔案會增加編譯時間,影響開發效率;如果直接上線,還會拉長請求和

webpack4 系列教程(四): 單頁面解決方案--代碼分割加載

hub 名稱 ava mas dirname 相關 static tps 界面 本節課講解webpack4打包單頁應用過程中的代碼分割和代碼懶加載。不同於多頁面應用的提取公共代碼,單頁面的代碼分割和懶加載不是通過webpack配置來實現的,而是通過webpack的寫法和內

webpack程式碼分割/離

兩種方法: 1.webpack的methods----require.ensure 2.ES 2015的Loader spec //require.ensure語法 require.ensure []:dependencies callback er

React服務端渲染(程式碼分割資料預取)

前幾節已經把專案基本骨架和路由搭建好了,但作為實際專案開發,這些還是不夠的。隨著業務的增大,應用層序程式碼也隨之增大,如果把所有程式碼都打包到一個檔案裡面,首次載入會導致時間相對變長,增加流量(對移動端來說)。應用程式包含很多頁面,某一時刻使用者只會訪問一個頁面,使用者未訪問的頁面程式碼在訪問之前不應該被載入

mybatis開啟二級快取載入,類型別名,類都簡稱

SqlMapConfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "ht

30行Javascript程式碼實現圖片載入

小編推薦:Fundebug專注於JavaScript、微信小程式、微信小遊戲,Node.js和Java實時BUG監控。真的是一個很好用的bug監控費服務,眾多大佬公司都在使用。 前言 頁面太多圖片?那麼請你花20分鐘去優化一下頁面的效能 講道理,當你為圖片的src賦值時,D

spring容器建立物件的時間載入

我們如何判斷一個物件是在spring容器啟動的時候建立的呢 還是在我們呼叫這個物件的時候建立的? 在單例的情況下: 在上面一個spring基礎(一)中,我們寫了如下的測試類: public class testHelloSpring { @Test p

五、swift3.0閉包載入

一、閉包的使用 與 OC中的Block類似,閉包主要用於非同步操作執行完成後的程式碼回撥,網路訪問結果以引數的形式傳遞給呼叫方 在OC中block是匿名的函式;在swift中閉包是特殊的函式 回撥的特點:以引數回撥處理結果;返回值為Void 1、閉包的定義 閉包 = {

簡述Hibernate的快取載入

1.為什麼使用快取   hibernate使用快取減少對資料庫的訪問次數,從而提升hibernate的執行效率。hibernate中有兩種型別的快取:一級快取和二級快取。 2.一級快取   Hibenate中一級快取,也叫做session的快取,當呼叫session的s

webpack -- vue程式碼分割(codesplit)

為什麼需要做程式碼分割(codesplit) 在vue單頁應用中,若不做任何處理,所有vue檔案會打包為一個檔案,這個檔案非常的大,造成網頁在首次進入時比較緩慢。做了程式碼分割後,會將程式碼分離到不同

vue路由非同步元件載入案例

最近研究了vue效能優化,涉及到vue非同步元件和懶載入。一番研究得出如下的解決方案。原理:利用webpack對程式碼進行分割是懶載入的前提,懶載入就是非同步呼叫元件,需要時候才下載。案例:首先是元件,建立四個元件分別命名為first、second、three和four;內容

Angular效能優化實踐——巧用第三方元件載入技術

  應該有很多人都抱怨過 Angular 應用的效能問題。其實,在搭建Angular專案時,通過使用打包、懶載入、變化檢測策略和快取技術,再輔助第三方元件,便可有效提升專案效能。   為了幫助開發者深入理解和使用Angular,本文將以我司客戶中最為典型的業務場景—&mdash

使用Webpack程式碼分離實現Vue載入(譯文)

當一個Vue的專案體積變得十分龐大的時候,使用Webpack的程式碼分離功能將Vue Components,routes或Vuex的程式碼進行分離並按需載入,會極大的提高App的首屏載入速度。 在Vue的專案中,我們可以在三種不同的情況下使用懶載入和程式碼分離功能: Vue元

使用Webpack程式碼分離實現Vue載入

當一個Vue的專案體積變得十分龐大的時候,使用Webpack的程式碼分離功能將Vue Components,routes或Vuex的程式碼進行分離並按需載入,會極大的提高App的首屏載入速度。 在Vue的專案中,我們可以在三種不同的情況下使用懶載入和程式碼分離功能: Vue元件,也稱為非同步元件

vue-routerwebpack載入,頁面效能優化篇

在vue單頁應用中,當專案不斷完善豐富時,即使使用webpack打包,檔案依然是非常大的,影響頁面的載入。如果我們能把不同路由對應的元件分割成不同的程式碼塊,當路由被訪問時才載入對應的元件(也就是按需載入),這樣就更加高效了。——引自vue-router官方文件 如何實現?? vue

Vue結合webpack實現路由載入分類打包

Vue專案中路由設定一般會引入元件,然後使用。但是這會造成專案一次載入很多元件,影響響應時間。解決這個問題就可以使用路由的懶載入。有三種方法可以實現:export default new Router({ routes: [ { path: '/',