mcpField
S
static-import

static-import

github.com/patternsdev开发2571.5k 次安装28 周前更新
代码仓库

关于 static-import

介绍 JavaScript 静态导入的开发技能,说明模块如何进入初始打包产物,以及何时考虑动态导入。适合构建 Web 应用并需要权衡初始渲染与加载体积的开发者。

主要功能

  1. 01说明静态导入的执行时机
  2. 02解释模块如何进入初始包
  3. 03区分首屏关键模块与延迟模块

适用场景

  1. 01选择首屏渲染所需模块
  2. 02评估静态导入对包体积的影响

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/patternsdev/skills --skill static-import

安装后在 Claude Code 中输入/static-import确认已加载。

详细介绍

静态导入

import 关键字允许我们导入由其他模块导出的代码。默认情况下,所有_静态导入_的模块都会添加到初始捆绑包中。使用默认 ES2015 导入语法 import module from 'module' 导入的模块,就是静态导入的。

来看一个例子!一个简单的聊天应用包含一个 Chat 组件,其中静态导入并渲染了三个组件:UserProfile、ChatList 和 ChatInput,用于输入并发送消息!在 ChatInput 模块中,我们静态导入了一个 EmojiPicker 组件,以便在用户切换表情选择器时显示它。

何时使用

  • 用于导入页面加载时立即需要的模块
  • 这是默认的导入机制——了解它,才能知道何时切换为动态导入

说明

  • 对初始渲染至关重要的模块应使用静态导入
  • 请注意,所有静态导入的模块都会打包到初始捆绑包中
  • 对于初始渲染时不需要的模块,可以考虑改用动态导入

详情

当引擎执行到导入模块的那一行时,这些模块就会立即执行。

由于这些组件是静态导入的,Webpack 将这些模块打包到了初始捆绑包中:

Asset           Size      Chunks            Chunk Names
main.bundle.js  1.5 MiB    main  [emitted]  main

聊天应用的源代码会被打包到一个捆绑包中:main.bundle.js。捆绑包过大可能会显著影响应用的加载时间,具体取决于用户的设备和网络连接。在 App 组件能够将内容渲染到用户的屏幕上之前,必须先加载并解析所有模块。

幸运的是,有很多方法可以加快加载速度!我们不必总是一次性导入所有模块:有些模块可能只应在用户交互时才渲染,例如本例中的 EmojiPicker;也有些模块可能只会在页面较下方渲染。我们可以不静态导入所有组件,而是在 App 组件渲染完内容、用户能够与应用交互之后,再_动态_导入这些模块。

来源

评论

支持 Markdown