vercel-react-native-skills

Applies React Native and Expo performance best practices to mobile app code.

Updated Apr 17, 2026
One-click install
npx skills add https://github.com/Syedyasir001/RVULibPass --skill vercel-react-native-skills-syedyasir001
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: vercel-react-native-skills
Source: https://github.com/Syedyasir001/RVULibPass/tree/main/.agent/skills/library/react-native-skills
Command: npx skills add https://github.com/Syedyasir001/RVULibPass --skill vercel-react-native-skills-syedyasir001

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? React Native apps frequently suffer from scroll jank, unnecessary re-renders, runtime crashes, and slow animations caused by common coding mistakes. This Skill provides 35+ prioritized rules so an AI agent can generate, review, or refactor React Native and Expo code that follows proven performance patterns. ## Core Features & Use Cases - Prioritized Rule Library: 35+ rules across 13 categories ranked by impact, from CRITICAL rendering crashes (falsy && rendering, text outside Text components) to HIGH-impact list virtualization and animation guidance. - Incorrect vs. Correct Examples: Every rule includes side-by-side TypeScript/TSX code comparisons with explanations, making it directly usable for automated refactoring and code review. - Use Case: When building a product feed screen, the agent applies list virtualization with LegendList, passes primitive props for memoization, uses compressed images, and animates only transform/opacity with Reanimated for smooth 60fps scrolling. ## Quick Start Review my React Native list screen and apply the performance best practices from this skill.

Frequently Asked Questions about vercel-react-native-skills

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I optimize FlatList performance in React Native?▼

Use a list virtualizer like LegendList or FlashList instead of ScrollView, pass primitive props to memoized list items, hoist callbacks to the list root, and keep item components lightweight without queries or heavy hooks. Stable object references in the data array prevent full re-renders.

What causes the React Native text strings must be rendered within a Text component crash?▼

This crash happens when a string or falsy value like 0 or an empty string is rendered as a direct child of a View. Wrap all strings in Text components and replace {value && <Component />} with ternaries or explicit boolean coercion.

Should I use Reanimated useDerivedValue or useAnimatedReaction?▼

Use useDerivedValue when computing one shared value from another, since it is declarative and tracks dependencies automatically. Reserve useAnimatedReaction for side effects that produce no value, such as triggering haptics or calling runOnJS.

Does this skill work with the React Compiler enabled?▼

Yes, several rules address React Compiler compatibility, including destructuring functions early in render and using .get()/.set() instead of .value on Reanimated shared values. With the compiler enabled, manual memo() and useCallback() optimizations become less critical.

Native stack vs JS stack navigator in React Navigation, which should I use?▼

Use native navigators such as @react-navigation/native-stack or expo-router's default stack, which run transitions on platform APIs like UINavigationController. JS-based navigators lack native performance, large titles, and automatic safe area handling.

Why does my React Native monorepo fail to autolink native dependencies?▼

Autolinking only scans the native app's node_modules, so packages with native code like react-native-reanimated must be listed in the app package's dependencies even if a shared package also uses them. Keep single exact versions across the monorepo to avoid duplicate bundles.