技能 vercel-react-best-practices
📦

vercel-react-best-practices

安全

تحسين أداء React و Next.js

也可从以下获取: ZhanlinCui,vercel-labs

ابنِ تطبيقات React و Next.js أسرع باستخدام أنماط الأداء المجربة. توفر هذه المهارة إرشادات عملية من Vercel Engineering للقضاء على مشاكل waterfalls، وتقليل حجم الحزمة، وتحسين العرض.

支持: Claude Codex Code(CC)
🥉 73 青铜
1

下载技能 ZIP

2

在 Claude 中上传

前往 设置 → 功能 → 技能 → 上传技能

3

开启并开始使用

测试它

正在使用“vercel-react-best-practices”。 مكون مع fetches useEffect متسلسلة

预期结果:

المشكلة: ثلاثة hooks useEffect تجلب البيانات بشكل متسلسل، مما يسبب render waterfall. الحل: اجمع عمليات الجلب في useEffect واحدة مع Promise.all() أو حول الأب إلى مكون خادم.

正在使用“vercel-react-best-practices”。 عبارة import تسحب مكتبة lodash كاملة

预期结果:

المشكلة: import _ from lodash يضيف 72KB إلى الحزمة. الحل: استخدم عمليات استيراد قابلة لـ tree-shaking مثل import debounce from lodash/debole أو انتقل إلى lodash-es لتحسين أفضل للحزمة.

正在使用“vercel-react-best-practices”。 مكون يعيد حساب قيمة مكلفة في كل عرض

预期结果:

المشكلة: الحساب المكلف يعمل في كل عرض. الحل: لفه في useMemo مع التبعيات المناسبة، أو استخراجه إلى مكون memo منفصل يعيد العرض فقط عندما تتغير المدخلات.

安全审计

安全
v1 • 2/25/2026

Static analysis detected 911 pattern matches across 51 files (4901 lines), but all findings are FALSE POSITIVES. The skill is a documentation-only repository containing React/Next.js performance optimization guidelines in markdown format. Detected patterns (shell commands, dynamic imports, fetch calls, storage access) exist solely as code examples within documentation, not as executable code. No actual security risks identified.

51
已扫描文件
4,901
分析行数
0
发现项
1
审计总数
未发现安全问题
审计者: claude

质量评分

38
架构
100
可维护性
87
内容
50
社区
100
安全
83
规范符合性

你能构建什么

بناء ميزات React الجديدة

مطورو React الذين يبنون ميزات جديدة يكتبون مكونات بأداء أمثل من البداية، مع اتباع أنماط Vercel المعتمدة لجلب البيانات والعرض وتحسين الحزمة

مراجعة طلبات السحب

الفرق التي تراجع طلبات السحب تتحقق من الكود من أنماط الأداء السيئة قبل الدمج، وتكتشف waterfalls وإعادة العرض غير الضرورية وتضخم الحزمة مبكراً في التطوير

الانتقال إلى Next.js App Router

المهندسون الذين ينتقلون إلى Next.js App Router يحولون أنماط جانب العميل إلى بنية مكونات الخادم، ويتعلمون الاستخدام الصحيح لتخزين الخادم المؤقت وحدود التسلسل وجلب البيانات المتوازي

试试这些提示

مراجعة المكون من مشاكل الأداء
راجع مكون React هذا من مشاكل الأداء. حدد أي render waterfalls أو إعادة عرض غير ضرورية أو فرص تحسين الحزمة. اقترح تحسينات محددة بناءً على أفضل ممارسات Vercel.
إصلاح waterfall جلب البيانات
يجلب هذا المكون البيانات بشكل متسلسل. أعد هيكلته للجلب ��التوازي باستخدام Promise.all() أو أعد هيكلته كمكونات خادم. اشرح أي نهج أفضل لحالة الاستخدام هذه.
تحسين التخزين المؤقت لمكون الخ��دم
حلل جلب البيانات لمكون الخادم هذا. أوصي باستراتيجية تخزين مؤقت باستخدام React.cache() لإلغاء التكرار لكل طلب أو تخزين مؤقت LRU للتحسين عبر الطلبات. اinclude اعتبارات إبطال التخزين المؤقت.
تصميم أداء لوحة معلومات متعددة الصفحات
صمم لوحة معلومات مع 10+ أدوات تعرض البيانات الفورية والتاريخية. حدد: 1) حدود مكونات الخادم والعميل، 2) استراتيجية جلب البيانات والتخزين المؤقت، 3) حالات التحميل مع Suspense، 4) تحسين الحزمة لمكتبات الرسم البيانية التابعة لجهات خارجية.

最佳实践

  • ابدأ الوعود مبكراً وأنتظر متأخراً - ابدأ جلب البيانات قبل الحاجة إليها، وأجل await حتى تصبح القيمة مطلوبة
  • استخدم مكونات الخادم افتراضياً - أضف 'use client' فقط عندما تكون مطلوب APIs المتصفح أو التفاعلية
  • فضل SWR أو React Query لجلب بيانات العميل - تخزين مؤقت مدمج، وإلغاء التكرار، وإعادة التحقق

避免

  • جلب البيانات المتسلسل في hooks useEffect منفصلة - يسبب render waterfalls
  • استيراد مكتبات أدوات كاملة - حزم منتفخة، استخدم استيرادات محددة بدلاً من ذلك
  • استخدام && للعرض الشرطي للمكونات التي تعرض '0' - استخدم عامل ثلاثي

常见问题

متى يجب أن أستخدم مكونات الخادم مقابل مكونات العميل؟
استخدم مكونات الخادم افتراضياً لجلب ��لبيانات والحسابات الثقيلة والتكاملات مع الواجهة الخلفية. استخدم مكونات العميل فقط للتفاعلية (useState, useEffect) أو APIs المتصفح أو معالجات الأحداث. احتفظ بمكونات العميل في العقد الورقية لشجرة المكونات.
كيف أصلح render waterfalls في مكوناتي؟
استخدم Promise.all() لعمليات الجلب المستقلة، وأعد الهيكلة للجلب المتوازي في مكونات الخادم، أو استخدم مكتبات مثل better-all للتبعيات الجزئية. ابدأ عمليات الجلب مبكراً (المستوى الأعلى) وأنتظر متأخراً (حيث الحاجة).
ما الفرق بين React.cache() والتخزين المؤقت LRU؟
React.cache() يوفر إلغاء التكرار لكل طلب - يخزن مؤقتاً داخل عرض واحد. التخزين المؤقت LRU يستمر عبر الطلبات باستخدام مخازن خارجية مثل Redis أو Map في الذاكرة. استخدم cache() لإلغاء التكرار، و LRU للبيانات المكلفة عبر الطلبات.
كيف يمكنني تقليل حجم حزمة Next.js؟
استخدم next/dynamic للمكونات الثقيلة، واستورد الأدوات مباشرة (ليس ملفات barrel)، وأجل البرامج النصية التابعة لجهات خارجية حتى بعد الترطيب، واستخدم الاستيراد الشرطي للميزات غير المطلوبة عند التحميل الأولي. تحقق من محلل الحزمة مع next-bundle-analyzer.
لماذا يساعد SWR في جلب بيانات جانب العميل؟
يوفر SWR إلغاء التكرار التلقائي للطلب (مكونات متعددة تطلب نفس البيانات تشترك في جلب واحد)، وتخزيناً مؤقتاً باستراتيجية stale-while-revalidate، وإعادة تحقق عند التركيز، وتحديثات متفائلة. يقلل طلبات الشبكة ويحسن الأداء المتصور.
متى يجب أن أستخدم startTransition؟
استخدم startTransition لتحديثات الحالة غير العاجلة التي يمكن مقاطعتها، مثل تصفية القوائم الكبيرة أو الكتابة في مدخلات البحث. يحافظ على استجابة واجهة المستخدم من خلال السماح لـ React بإعطاء الأولوية لتفاعلات المستخدم على التحديثات في الخلفية.