بناء مكونات React مكتوبة من SVG

حوّل علامة SVG الأولية إلى أيقونات TSX قابلة لإعادة الاستخدام وحافظ على اتساق اللون والحجم وإمكانية الوصول.

الصق SVG مباشرة في الكود يؤدي غالبًا إلى سمات غير متسقة وقيم مشفرة. يمنحك هذا الدليل سير عمل أيقونات React + TypeScript نظيفًا.

1) تسوية إدخال SVG

  • نظف المجموعات غير الضرورية والبيانات الوصفية والأنماط المضمنة قبل التحويل.
  • حافظ على viewBox حتى يبقى تحجيم المكون قابلًا للتنبؤ.
  • أعد تسمية المعرفات والأقنعة لتجنب التعارض عند عرض أيقونات متعددة على صفحة واحدة.

2) إنشاء مكون آمن النوع

  • استخدم سمات TypeScript تمتد سمات SVG للدعم الكامل لـ IntelliSense.
  • عيّن width وheight افتراضيين مع السماح بالتجاوز من المكوّن الأب.
  • استبدل التعبئات الثابتة بـ currentColor عندما يجب أن ترث الأيقونات لون النص.

3) التكامل في نظام التصميم

  • خزّن الأيقونات في مجلد واضح وصدّرها من ملف barrel واحد.
  • تطبيق قواعد lint أو اختبارات لمنع سمات SVG غير الصالحة في CI.
  • توثيق أمثلة الاستخدام للرموز الحجمية الدلالية وتسميات aria.

الأسئلة الشائعة حول SVG إلى React TypeScript

هل يجب أن تستخدم مكونات الأيقونة لونًا ثابتًا أم currentColor؟
لأيقونات نظام التصميم، يكون currentColor عادةً الأفضل لأنه يمكن التحكم في اللون من النص الأصلي أو رموز السمة.
كيف أكتب أنواع سمات الأيقونة؟
استخدم React.SVGProps<SVGSVGElement> كقاعدة وأضف سمات مخصصة اختيارية فقط عند الحاجة.
هل يمكنني إبقاء تسميات إمكانية الوصول مرنة؟
نعم. وفّر سمات مثل title و aria-label، واجعل aria-hidden القيمة الافتراضية للأيقونات الزخرفية.
هل يجب أن أحسن قبل تحويل React؟
نعم. التحسين أولاً يقلل الضوضاء ويتجنب حمل سمات غير ضرورية في ملفات TSX.