动态引入
# 动态引入
动态 import 提案几年前就已提出,如今已经进入 ES 正式规范。这里理解成「按需」更为贴切。
现代前端打包资源越来越大,打包成几 M 的 JS 资源已成常态,而往往前端应用初始化时根本不需要全量加载逻辑资源,为了首屏渲染速度更快,很多时候都是按需加载,比如懒加载图片等。而这些按需执行逻辑资源都体现在某一个事件回调中去加载。
# 案例
页面上有一个按钮,点击按钮才去加载 ajax 模块。
const oBtn = document.querySelector('#btn')
oBtn.addEventListener('click', () => {
import('./ajax').then(mod => {
// console.log(mod)
mod.default('static/a.json', res => {
console.log(res)
})
})
})
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
Webpack 目前已很好的支持了该特性。Vue 中也已使用 Dynamic Import 实现组件的动态导入。
(完)