@futurejj/react-native-visibility-sensor

中文文档
1.4.19发布于 2026/10/25MITTypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 8.2万

用于检查一个组件是否在视图端口以跟踪印象并点击的回放本地包装器

中文使用文档
文档目录10 节
  1. 使用大小写
  2. 安装
  3. 使用量
  4. 属性
  5. 可见感应阈值
  6. 页:1
  7. 捐款
  8. 许可证
  9. 支持项目
  10. 谢谢

@futurejj/反应-本土-可见-传感器

QQ 组件能见度传感器包, 以感知一个组件是否处于可配置的插入阈值和%能见度回调的视图中 .

npm version License Workflow Status Android iOS Web GitHub issues TS Expo Snack 1 Expo Snack 2 NPM Downloads npm bundle size Sponsor

Visibility Sensor demo Visibility Sensor nested scroll view demo

使用大小写

  • 懒惰装入: 只有在可见时才装入图像/内容,以优化种子、画廊、图表或网页视图中的性能.
  • 滚动动画:用于进入取景口的组件的触发动画(如:已淡出,已滑出).
  • 分析跟踪: 在设定持续时间或百分比内可见的广告/广告的日志印象.
  • 动态 UI 优化:暂停/重播视频,根据组件能见度在种子或旋转木马中清理出屏幕组件或定时器.

安装

使用线条

yarn add @futurejj/react-native-visibility-sensor

使用 npm :

npm install @futurejj/react-native-visibility-sensor

使用量

import React, { useState } from 'react';
import { ScrollView, Text } from 'react-native';
import { VisibilitySensor } from '@futurejj/react-native-visibility-sensor';

export default function VisibilitySensorExample() {
  const [isVisible, setIsVisible] = useState(false);
  const [percentVisible, setPercentVisible] = useState<number>(0);

  return (
    <ScrollView>
      <VisibilitySensor
        onChange={setIsVisible}
        onPercentChange={setPercentVisible} // optional callback for % change
        threshold={{ top: 100, bottom: 100 }}
        style={[styles.item, { backgroundColor: isVisible ? 'green' : 'red' }]}>
          
        {/* Visibility state */}
        <Text>This View is currently visible? {isVisible ? 'yes' : 'no'}</Text>

        {/* Percent visibility state */}
        <Text>{`Percent visible: ${percentVisible}%`}</Text>
      </VisibilitySensor>
    </ScrollView>
  );
}

属性

VisibilitySensorProps 扩展 ViewProps 包含所有视图的共同属性,例如 style, (中文(简体) ), onLayout等 (中文(简体) ).

财产类型需求说明
onChange(visible: boolean) => void对调用函数, 当可见度改变时会点火 .
onPercentChange(percentVisible: number) => void没有调用函数, 当可见度% 变化时点火 .
disabledboolean没有若为 true,关闭传感器.
triggerOnceboolean没有若为 true传感器只会触发一次.
delaynumber 或者说 undefined没有传感器触发前以毫秒计的延迟.
threshold可见感应阈值没有定义传感器触发时必须可见的视图部分.

此外,所有属性来自 ViewProps 也适用.


可见感应阈值

财产类型需求说明
topnumber没有可见度最高阈值.
bottomnumber没有可见度的下限值 .
leftnumber没有可见度的左阈值 .
rightnumber没有可见度的正确阈值 .

页:1

  1. 面对Android的问题? 参考这次讨论: https://github.com/JairajJangle/ react-native-visibility-senor/pull/1#issuecomment-2251569005 (英语)

捐款

见 贡献指南 学习如何为储存库和发展工作流程作出贡献.

许可证

麻省理工学院

支持项目

LiberPay_Donation_Button           Paypal_Donation_Button           Paypal_Donation_Button

谢谢


版本与发布记录

@futurejj/react-native-visibility-sensor 共发布 58 个版本,首次发布于 2024/05/09;过去 12 个月发布了 15 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.4.19latest2026/10/2521 天前
1.4.182026/09/062 个月前
1.4.172026/08/182 个月前
1.4.162026/06/165 个月前
1.4.152026/06/065 个月前
1.4.142026/06/065 个月前

其他发布通道:beta → 1.4.0-beta.3。

关于 @futurejj/react-native-visibility-sensor 的常见问题

@futurejj/react-native-visibility-sensor 是什么?

用于检查一个组件是否在视图端口以跟踪印象并点击的回放本地包装器

如何安装 @futurejj/react-native-visibility-sensor?

在项目目录运行 npm install @futurejj/react-native-visibility-sensor,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(*)、react-native(*)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@futurejj/react-native-visibility-sensor 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@futurejj/react-native-visibility-sensor 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@futurejj/react-native-visibility-sensor 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@futurejj/react-native-visibility-sensor 可以商用吗?

@futurejj/react-native-visibility-sensor 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@futurejj/react-native-visibility-sensor 的下载量有多少?

根据 npm 官方下载统计,@futurejj/react-native-visibility-sensor 在 2026/10/16 – 2026/11/14 这 30 天内被下载 81,512 次,日均约 2,717 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@futurejj/react-native-visibility-sensor 还在维护吗?

最新版本 1.4.19 发布于 2026/10/25(21 天前);至今共发布 58 个版本,其中过去 12 个月发布了 15 个;首次发布于 2024/05/09。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。