Habilidades React Native
Melhores práticas abrangentes para aplicações React Native e Expo. Contém regras em várias categorias, abrangendo desempenho, animações, padrões de interface do usuário e otimizações específicas de plataforma.
Quando Aplicar
Consulte estas diretrizes ao:
- Desenvolver 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 Lista | 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 Lista (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 callbackslist-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 navigators nativos (native stack e native tabs) em vez de navigators JS
4. Padrões de UI (ALTO)
ui-expo-image- Use expo-image para todas as imagensui-image-gallery- Use Galeria para lightboxes de imagensui-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 o 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 falsy && para renderização condicional
7. Monorepo (MÉDIO)
monorepo-native-deps-in-app- Mantenha dependências nativas no pacote do aplicativomonorepo-single-dependency-versions- Use versões únicas em todos os 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 do objeto Intl
Como Usar
Leia os arquivos de regras individuais para explicações detalhadas e exemplos de código:
regras/list-performance-virtualize.md
regras/animation-gpu-properties.md
Cada arquivo de regra contém:
- Breve explicação do porquê é 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