13 代码分割之import静动态导入

前端首屏优化方案之一

项目构建时会整体打包成一个bundle的JS文件,而有的代码、模块是加载时不需要的,需要分割出来单独形成一个文件块chunk(不会打包在main里),让模块懒加载(想加载时才加载),以减少应用体积、减少加载时的体积。

  1. import是关键字而非函数(类比typeoftypeof '123’ or typeof('123')
  2. 静态导入: import xxx from '',导入并加载时,导入的模块会被编译,不是按需编译
  3. 动态导入:import('') 根据条件或按需的模块导入
  4. 动态导入应用场景:
  • 模块太大,使用可能性低
  • 模块的导入占用了大量系统内存
  • 模块需要异步获取
  • 导入模块时需要动态构建路径(路径拼接)import('./' + a + '.js')
  • 模块中的代码需要程序触发了某些条件才运行(比如点击事件)
  1. 不能滥用动态导入:静态导入有利于初始化依赖,动态导入不能用于静态的程序分析和tree shaking
// module.js
export default class MyTest {
   
    construct() {
   
        console.log('构造器')
    }
}
<template>
  <div>
    <button class="test" @click="clickBtn">查看</button>
  <
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值