Habilidades React Native
Melhores práticas abrangentes para aplicações React Native e Expo. Contém regras em várias categorias cobrindo desempenho, animações, padrões de UI e otimizações específicas de plataforma.
Quando Aplicar
Consulte estas diretrizes ao:
- Construir aplicativos React Native ou Expo
- Otimizar desempenho de listas e scroll
- Implementar animações com Reanimated
- Trabalhar com imagens e mídia
- Configurar módulos nativos ou fontes
- Estruturar projetos monorepo com dependências nativas
Categorias de Regras por Prioridade
| Prioridade | Categoria | Impacto | Prefixo |
|---|---|---|---|
| 1 | Desempenho de Listas | CRÍTICO | list-performance- |
| 2 | Animação | ALTO | animation- |
| 3 | Navegação | ALTO | navigation- |
| 4 | Padrões de UI | ALTO | ui- |
| 5 | Gerenciamento de Estado | MÉDIO | react-state- |
| 6 | Renderização | MÉDIO | rendering- |
| 7 | Monorepo | MÉDIO | monorepo- |
| 8 | Configuração | BAIXO | fonts-, imports- |
Referência Rápida
1. Desempenho de Listas (CRÍTICO)
list-performance-virtualize- Use FlashList para listas grandeslist-performance-item-memo- Memorize componentes de itens de listalist-performance-callbacks- Estabilize referências de callbacklist-performance-inline-objects- Evite objetos de estilo inlinelist-performance-function-references- Extraia funções para fora da renderizaçãolist-performance-images- Otimize imagens em listaslist-performance-item-expensive- Mova trabalho pesado para fora dos itenslist-performance-item-types- Use tipos de item para listas heterogêneas
2. Animação (ALTO)
animation-gpu-properties- Anime apenas transform e opacityanimation-derived-value- Use useDerivedValue para animações computadasanimation-gesture-detector-press- Use Gesture.Tap em vez de Pressable
3. Navegação (ALTO)
navigation-native-navigators- Use navegadores nativos (stack e tabs) em vez de JS
4. Padrões de UI (ALTO)
ui-expo-image- Use expo-image para todas as imagensui-image-gallery- Use Galeria para lightboxes de imagemui-pressable- Use Pressable em vez de TouchableOpacityui-safe-area-scroll- Lide com áreas seguras em ScrollViewsui-scrollview-content-inset- Use contentInset para cabeçalhosui-menus- Use menus de contexto nativosui-native-modals- Use modais nativos quando possívelui-measure-views- Use onLayout, não measure()ui-styling- Use StyleSheet.create ou Nativewind
5. Gerenciamento de Estado (MÉDIO)
react-state-minimize- Minimize assinaturas de estadoreact-state-dispatcher- Use padrão dispatcher para callbacksreact-state-fallback- Mostre fallback na primeira renderizaçãoreact-compiler-destructure-functions- Desestruture para o React Compilerreact-compiler-reanimated-shared-values- Lide com valores compartilhados com o compilador
6. Renderização (MÉDIO)
rendering-text-in-text-component- Envolva texto em componentes Textrendering-no-falsy-and- Evite && falso para renderização condicional
7. Monorepo (MÉDIO)
monorepo-native-deps-in-app- Mantenha dependências nativas no pacote do appmonorepo-single-dependency-versions- Use versões únicas entre pacotes
8. Configuração (BAIXO)
fonts-config-plugin- Use plugins de configuração para fontes personalizadasimports-design-system-folder- Organize importações do sistema de designjs-hoist-intl- Eleve a criação de objetos Intl
Como Usar
Leia arquivos de regra individuais para explicações detalhadas e exemplos de código:
rules/list-performance-virtualize.md
rules/animation-gpu-properties.md
Cada arquivo de regra contém:
- Breve explicação de por que é importante
- Exemplo de código incorreto com explicação
- Exemplo de código correto com explicação
- Contexto adicional e referências
Documento Compilado Completo
Para o guia completo com todas as regras expandidas: AGENTS.md