关于 import-on-visibility
import-on-visibility 是一项前端加载模式指南,介绍如何等组件进入视口后再导入模块。它面向希望减少初始加载内容的开发者,并说明适用场景、限制和加载占位方案。
主要功能
- 01组件进入视口时再导入
- 02使用 IntersectionObserver
- 03可选用可见性加载库
- 04显示模块加载占位内容
- 05说明不适用的场景
适用场景
- 01延迟加载首屏以下组件
- 02滚动时加载图片或小部件
- 03减少初始页面加载内容
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ patternsdev/ skills --skill import-on-visibility安装后在 Claude Code 中输入/import-on-visibility确认已加载。
详细介绍
可见时导入
除了用户交互,我们通常还有一些组件在初始页面上不可见。一个很好的例子是延迟加载不在视口中直接可见的图像,只有用户向下滚动后才加载。
由于我们不会立即请求所有图像,因此可以缩短初始加载时间。组件也可以采用同样的方式!为了判断组件当前是否位于视口中,我们可以使用 IntersectionObserver API,也可以使用 react-lazyload 或 react-loadable-visibility 等库,快速为应用添加可见时导入功能。
适用场景
- 用于初始页面上不可见的组件(例如首屏以下的内容)
- 用户滚动时,适合延迟加载图像、小部件或大型组件
不适用场景
- 对于必须立即渲染的首屏内容——延迟渲染会导致明显的布局偏移,并拖慢 LCP
- 当组件足够轻量,以至于延迟加载带来的开销超过其节省的资源时
- 当内容对 SEO 至关重要,且必须包含在初始 HTML 中时
说明
- 使用
IntersectionObserverAPI 检测组件何时进入视口 - 使用
react-lazyload或react-loadable-visibility等库快速实现 - 在模块加载期间提供一个加载备用组件
详情
每当组件渲染到屏幕上时,react-loadable-visibility 都会检测该元素是否应该显示在屏幕上。只有此时,它才会开始导入模块,同时用户会看到加载组件。
这个备用组件可以让用户知道应用并未卡住:只需稍等片刻,等待模块加载、解析、编译并执行即可!
来源
评论
支持 Markdown