next-best-practices
Créer des applications Next.js prêtes pour la production
Arrêtez de deviner les modèles Next.js et écrivez du code qui s'adapte. Cette compétence fournit des conseils faisant autorité de Vercel sur les conventions de fichiers, les React Server Components, la récupération de données, la gestion des erreurs et les bonnes pratiques de déploiement.
تنزيل ZIP المهارة
رفع في Claude
اذهب إلى Settings → Capabilities → Skills → Upload skill
فعّل وابدأ الاستخدام
اختبرها
استخدام "next-best-practices". Should I use 'use client' in this component?
النتيجة المتوقعة:
Based on your code, you do NOT need 'use client' here. This component only receives data via props and renders JSX without any browser APIs. Adding 'use client' would unnecessarily increase your client bundle size.
Keep it as a Server Component unless you need:
- useState, useEffect, or other React hooks
- Browser APIs like window or document
- Event handlers like onClick
- Client-side data fetching
استخدام "next-best-practices". Review my async params usage
النتيجة المتوقعة:
Your params typing is incorrect for Next.js 15+. Update it to:
type Props = {
params: Promise<{ slug: string }>
}
export default async function Page({ params }: Props) {
const { slug } = await params
// ...
}
The params prop is now a Promise that must be awaited. This change enables partial prerendering and improves performance.
استخدام "next-best-practices". How do I fix this hydration error?
النتيجة المتوقعة:
Your hydration error is caused by using Date.now() in your component. The server and client render different timestamps.
Solutions:
1. Use 'use client' if the date display is not critical for SEO
2. Use suppressHydrationWarning for timestamps
3. Render the date only on the client with useEffect
Example fix:
const [date, setDate] = useState<string>()
useEffect(() => setDate(new Date().toISOString()), [])
This ensures the date only renders on the client.
التدقيق الأمني
آمنAll 790 static analysis findings are false positives. The skill contains only documentation and code examples for Next.js best practices. Pattern matches for 'external commands' are Markdown code blocks, 'network' findings are documentation URLs, and 'env_access' references are standard configuration examples. No executable code or security risks detected.
درجة الجودة
ماذا يمكنك بناءه
Réviser de nouveaux projets Next.js
Assurez-vous que la structure de votre projet suit les conventions officielles dès le premier jour. Validez l'organisation des fichiers, les segments de routes et l'utilisation des fichiers spéciaux.
Migrer vers App Router
Obtenez des instructions étape par étape pour convertir le code Pages Router vers App Router avec les Server Components appropriés, les modèles asynchrones et la récupération de données.
Déboguer les problèmes de production
Résolvez les erreurs d'hydratation, les problèmes de bundling et les problèmes de configuration de déploiement avec des solutions éprouvées de Vercel.
جرّب هذه الموجهات
Réviser la structure de mon projet Next.js et identifier les fichiers qui ne suivent pas les conventions App Router. Vérifier l'utilisation correcte de layout.tsx, page.tsx, loading.tsx, error.tsx et les groupes de routes.
J'ai des erreurs avec mes React Server Components. Réviser ce code et me dire si j'utilise correctement async/await pour les params, cookies ou headers. Vérifier également si j'utilise accidentellement des API client uniquement dans les composants serveur.
Réviser mes modèles de récupération de données et identifier les waterfalls. Montrer comment utiliser Promise.all, les limites Suspense ou les modèles preload pour améliorer les performances.
Aider à configurer mon application Next.js pour l'auto-hébergement avec Docker. J'ai besoin d'une sortie standalone, de la configuration du cache handler pour ISR et de la configuration des variables d'environnement.
أفضل الممارسات
- Toujours typer params et searchParams comme Promise<T> dans Next.js 15+ et les attendre dans les Server Components
- Utiliser les imports dynamiques avec ssr: false pour les packages uniquement navigateur pour éviter les erreurs côté serveur
- Implémenter les limites loading.tsx et error.tsx pour une meilleure UX pendant la récupération de données et les états d'erreur
- Configurer output: 'standalone' dans next.config.js pour les déploiements Docker afin de minimiser la taille de l'image
- Utiliser next/image à la place des balises img pour l'optimisation automatique et de meilleures Core Web Vitals
تجنب
- Ne pas utiliser 'use client' inutilement - les Server Components réduisent le JavaScript envoyé au navigateur
- Éviter de récupérer des données de manière séquentielle dans les composants imbriqués - utiliser Promise.all ou Suspense pour éviter les waterfalls
- Ne jamais utiliser le préfixe NEXT_PUBLIC_ pour les secrets - ceux-ci sont exposés au bundle navigateur
- Ne pas utiliser les balises Link pour le CSS - importer les fichiers CSS directement pour un bon bundling
- Éviter la configuration webpack personnalisée - préférer serverExternalPackages et transpilePackages compatibles avec Turbopack