Compétences React Native
Meilleures pratiques exhaustives pour les applications React Native et Expo. Contient des règles couvrant plusieurs catégories incluant la performance, les animations, les modèles UI, et les optimisations spécifiques aux plateformes.
Quand appliquer
Consultez ces lignes directrices lors de :
- La construction d'applications React Native ou Expo
- L'optimisation de la performance des listes et du scroll
- L'implémentation d'animations avec Reanimated
- Le travail avec les images et les médias
- La configuration des modules natifs ou des polices
- La structuration de projets monorepo avec dépendances natives
Catégories de règles par priorité
| Priorité | Catégorie | Impact | Préfixe |
|---|---|---|---|
| 1 | Performance Listes | CRITIQUE | list-performance- |
| 2 | Animation | ÉLEVÉE | animation- |
| 3 | Navigation | ÉLEVÉE | navigation- |
| 4 | Modèles UI | ÉLEVÉE | ui- |
| 5 | Gestion d'état | MOYENNE | react-state- |
| 6 | Rendu | MOYENNE | rendering- |
| 7 | Monorepo | MOYENNE | monorepo- |
| 8 | Configuration | FAIBLE | fonts-, imports- |
Référence rapide
1. Performance Listes (CRITIQUE)
list-performance-virtualize- Utilisez FlashList pour les grandes listeslist-performance-item-memo- Mémoïsez les composants d'éléments de listelist-performance-callbacks- Stabilisez les références de callbackslist-performance-inline-objects- Évitez les objets de style inlinelist-performance-function-references- Extrayez les fonctions hors du rendulist-performance-images- Optimisez les images dans les listeslist-performance-item-expensive- Déplacez le travail coûteux hors des élémentslist-performance-item-types- Utilisez les types d'éléments pour les listes hétérogènes
2. Animation (ÉLEVÉE)
animation-gpu-properties- Animez uniquement transform et opacityanimation-derived-value- Utilisez useDerivedValue pour les animations calculéesanimation-gesture-detector-press- Utilisez Gesture.Tap à la place de Pressable
3. Navigation (ÉLEVÉE)
navigation-native-navigators- Utilisez les navigateurs native stack et native tabs plutôt que les navigateurs JS
4. Modèles UI (ÉLEVÉE)
ui-expo-image- Utilisez expo-image pour toutes les imagesui-image-gallery- Utilisez Galeria pour les lightbox d'imagesui-pressable- Utilisez Pressable plutôt que TouchableOpacityui-safe-area-scroll- Gérez les zones sûres dans les ScrollViewsui-scrollview-content-inset- Utilisez contentInset pour les en-têtesui-menus- Utilisez les menus contextuels natifsui-native-modals- Utilisez les modales natives si possibleui-measure-views- Utilisez onLayout, pas measure()ui-styling- Utilisez StyleSheet.create ou Nativewind
5. Gestion d'état (MOYENNE)
react-state-minimize- Minimisez les souscriptions d'étatreact-state-dispatcher- Utilisez le pattern dispatcher pour les callbacksreact-state-fallback- Affichez un fallback au premier rendureact-compiler-destructure-functions- Déstructurez pour React Compilerreact-compiler-reanimated-shared-values- Gérez les valeurs partagées avec le compilateur
6. Rendu (MOYENNE)
rendering-text-in-text-component- Enrobez le texte dans des composants Textrendering-no-falsy-and- Évitez falsy && pour le rendu conditionnel
7. Monorepo (MOYENNE)
monorepo-native-deps-in-app- Conservez les dépendances natives dans le package appmonorepo-single-dependency-versions- Utilisez des versions uniques entre les packages
8. Configuration (FAIBLE)
fonts-config-plugin- Utilisez les config plugins pour les polices personnaliséesimports-design-system-folder- Organisez les imports du design systemjs-hoist-intl- Remontez la création de l'objet Intl
Comment utiliser
Consultez les fichiers de règles individuels pour des explications détaillées et des exemples de code :
rules/list-performance-virtualize.md
rules/animation-gpu-properties.md
Chaque fichier de règle contient :
- Une brève explication de son importance
- Un exemple de code incorrect avec explication
- Un exemple de code correct avec explication
- Du contexte supplémentaire et des références
Document complet compilé
Pour le guide complet avec toutes les règles développées : AGENTS.md