使用 NativeLazy 记录
检测浏览器是否支持新 loading 属性.
把这个和 反应-截面-观测器
以倒置方法懒惰地加载图像.
检查 故事书 演示.
安装
yarn add @charlietango/use-native-lazy-loading
API 密码
const supported = useNativeLazyLoading(initialSupported)
示例
如何将此与 react-intersction-observer,以创建懒惰的加载图像.
import React from 'react'
import useNativeLazyLoading from '@charlietango/use-native-lazy-loading'
import { useInView } from 'react-intersection-observer'
const LazyImage = ({ width, height, src, ...rest }) => {
const supportsLazyLoading = useNativeLazyLoading()
const [ref, inView] = useInView({
triggerOnce: true,
skip: supportsLazyLoading !== false,
})
return (
<div
ref={ref}
style={{
position: 'relative',
paddingBottom: `${(height / width) * 100}%`,
background: '#2a4b7a',
}}
>
{inView || supportsLazyLoading ? (
<img
{...rest}
src={src}
alt="Placeholder kitten"
loading="lazy"
style={{ position: 'absolute', width: '100%', height: '100%' }}
/>
) : null}
</div>
)
}
export default LazyImage
关于 @charlietango/use-native-lazy-loading 的常见问题
@charlietango/use-native-lazy-loading 是什么?
检测浏览器是否支持图像元素上的新“ 载入” 属性 .注意:该包已被作者标记为弃用——No longer supported. Migrate to a new solution for support, or copy the code into the project
如何安装 @charlietango/use-native-lazy-loading?
在项目目录运行 npm install @charlietango/use-native-lazy-loading,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0)、react-dom(^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。
@charlietango/use-native-lazy-loading 支持 TypeScript 吗?
支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。
@charlietango/use-native-lazy-loading 支持 ESM 还是 CommonJS?
同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。
@charlietango/use-native-lazy-loading 可以商用吗?
@charlietango/use-native-lazy-loading 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。
@charlietango/use-native-lazy-loading 的下载量有多少?
根据 npm 官方下载统计,@charlietango/use-native-lazy-loading 在 2026/10/10 – 2026/11/08 这 30 天内被下载 7,917 次,日均约 264 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。
@charlietango/use-native-lazy-loading 还在维护吗?
最新版本 1.10.0 发布于 2022/04/15(4 年前);至今共发布 11 个版本,其中过去 12 个月发布了 0 个;首次发布于 2019/08/07。作者已将其标记为弃用,新项目建议寻找替代方案。