RN 组件开发
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @kunlungrowth/react-native-components 到 AI 助手中。
技能介绍
跨平台 RN 开发的核心痛点
React Native 在跨平台开发中常面临性能瓶颈:长列表滚动卡顿、复杂导航结构导致内存膨胀、RN 未内置硬件能力需手写桥接、以及复杂手势冲突。这些痛点往往让 RN 应用的流畅度远不及原生。
技能如何工作
本技能将 RN 资深开发经验转化为可执行的工程规范:
- 组件与列表优化:按功能而非屏幕拆分组件,
state尽量上提。强制使用FlatList替代ScrollView,通过windowSize={5}、removeClippedSubviews和getItemLayout优化渲染;renderItem内的回调必须用useCallback包裹。 - 导航与原生桥接:基于 React Navigation 设计 Tab/Stack 嵌套与深层链接;当 RN 内置 API 不足时,优先使用新架构的
Turbo Module编写原生模块,并严格处理线程调度(UI 更新需切回主线程)。 - 手势与动画:结合
react-native-gesture-handler与reanimated,将拖拽、缩放等手势动画放在 UI 线程执行,避免阻塞 JS 线程。
适用边界与注意点
此技能不适用于纯 UI 像素级精调(需用原生组件),也不适用于对包体积极度敏感或 3D 游戏渲染的场景。在桥接原生模块时,应优先评估社区维护的 Expo 模块而非盲目自研。
使用场景
- 1000 条以上数据的列表滚动卡顿,需调优 FlatList 参数(windowSize、getItemLayout)以恢复流畅度
- 设计 Tab/Stack/Modal 嵌套的导航架构,需配置深层链接并实现路由参数的类型安全
- 实现蓝牙、传感器等 RN 未内置的能力,需按新架构编写 Turbo Module 并处理线程调度
- 实现拖拽排序、双指缩放或滑动删除等复杂手势交互,需在 UI 线程运行动画防止掉帧
适合人员
- 资深 RN 工程师,面对高帧率要求的列表和手势场景需要降低性能瓶颈
- 移动端技术负责人,评估是否将现有旧架构 Native Module 迁移至 Turbo Module
- 全栈开发者,正在从 Web 转向移动端,需要一套规范的 RN 组件开发工作流
- 跨平台架构师,需要统一 iOS 和 Android 两端的导航结构与状态管理