تعيين صورة الخلفية في React: دليل متكامل لاستخدام أنماط CSS المضمنة
في عالم تطوير الويب الحديث، تُعد مكتبة React من الأدوات القوية لإنشاء واجهات مستخدم تفاعلية. أحد المتطلبات الشائعة في تصميم أي تطبيق هو القدرة على تخصيص الخلفيات باستخدام الصور. يركز هذا الدليل الشامل على استعراض أربع استراتيجيات فعّالة لتعيين خاصية backgroundImage باستخدام أنماط CSS المضمنة (Inline CSS) مباشرةً داخل مكونات React الخاصة بك. سنقدم أمثلة برمجية واضحة ومفصلة لكل طريقة لضمان فهمك الكامل لكيفية تطبيقها.
تعيين صورة خلفية في React باستخدام عنوان URL خارجي
إذا كانت صورتك مستضافة على الإنترنت أو متاحة عبر شبكة توصيل المحتوى (CDN)، يمكنك بسهولة تعيينها كصورة خلفية لعنصر HTML في React. يتم ذلك عن طريق تمرير عنوان URL الخاص بالصورة مباشرةً إلى خاصية backgroundImage ضمن كائن الأنماط المضمنة. إليك كيفية القيام بذلك:
function App ( ) {
return (
< div style = {{ backgroundImage: ` url (" https: // via.placeholder.com / 500 ")` }}>
مرحباً بالعالم
</ div >
);
}
سيقوم الكود أعلاه بعرض عنصر <div> واحد مع تطبيق النمط background-image: url("https://via.placeholder.com/500") عليه. هذه الطريقة مثالية للصور الثابتة أو تلك التي لا تتغير بشكل متكرر.
تعيين صورة خلفية في React من مجلد /src
عندما تقوم بإنشاء تطبيق React باستخدام أداة Create React App، يمكنك تضمين صورك مباشرةً داخل مجلد src/. لتعيين إحدى هذه الصور كخلفية، يجب عليك أولاً استيرادها (import) إلى المكون الخاص بك، ثم استخدام المتغير المستورد كقيمة لخاصية backgroundImage. تتميز هذه الطريقة بأنها توفر حماية ضد الروابط المعطلة، حيث سيتوقف بناء التطبيق إذا لم يتم العثور على الصورة.
import React from "react" ;
import background from "./img/placeholder.png" ;
function App ( ) {
return (
< div style = {{ backgroundImage: ` url (${ background })` }}>
مرحباً بالعالم
</ div >
);
}
export default App;
عند تشغيل الأمر npm start، سيعرض React خطأ “Failed to Compile” ويتوقف عن البناء إذا لم يتم العثور على الصورة المستوردة:

تضمن هذه الآلية عدم ظهور أي روابط صور معطلة في تطبيق الويب الخاص بك، مما يحسن تجربة المستخدم. في الكود أعلاه، يتم تعيين قيمة backgroundImage باستخدام سلسلة قوالب (template string)، مما يسمح بتضمين تعبيرات JavaScript مباشرةً.
تعيين صورة خلفية في React باستخدام المسار النسبي (Relative URL)
يُستخدم مجلد public/ في تطبيقات Create React App لإضافة الأصول الثابتة (static assets) مثل الصور والخطوط. أي ملف تضعه داخل هذا المجلد سيكون متاحاً عبر الإنترنت مباشرةً. على سبيل المثال، إذا وضعت ملف image.png داخل مجلد public/، يمكنك الوصول إليه عبر <عنوان استضافتك>/image.png.
عند تشغيل React على جهازك المحلي، ستكون الصورة متاحة على مسار مشابه لـ http://localhost:3000/image.png. يمكنك بعد ذلك تعيين هذا المسار النسبي لعنوان استضافتك لضبط صورة الخلفية. إليك مثال على ذلك:
<div style={{ backgroundImage : "url(/image.png)" }}>
مرحباً بالعالم
</div>
من خلال تعيين مسار URL إلى /image.png كما في المثال أعلاه، سيبحث المتصفح عن صورة الخلفية في <عنوان استضافتك>/image.png. يمكنك أيضاً إنشاء مجلدات فرعية داخل public/ لتنظيم صورك بشكل أفضل. على سبيل المثال:

لا تنسَ تعديل قيمة backgroundImage إلى url(/img/image.png) إذا قررت إنشاء مجلد فرعي لتخزين صورك.
تعيين صورة خلفية في React باستخدام المسار المطلق (Absolute URL)
يمكنك أيضاً تضمين المسار المطلق (Absolute URL) باستخدام متغير بيئة PUBLIC_URL الخاص بأداة Create React App. هذه الطريقة مفيدة بشكل خاص عند نشر تطبيقك في بيئات مختلفة، حيث يقوم React scripts بمعالجة قيمة PUBLIC_URL تلقائياً.
<div style={{ backgroundImage : `url( ${process.env.PUBLIC_URL + '/image.png' } )` }}>
مرحباً بالعالم
</div>
عند تشغيل هذا الكود على جهازك المحلي، ستبدو قيمة PUBLIC_URL كمسار نسبي بدلاً من مسار مطلق، مما يسهل عملية التطوير:

لن يظهر المسار المطلق الفعلي إلا عند نشر تطبيق React الخاص بك في بيئة الإنتاج (production application) لاحقاً، مما يضمن مرونة عالية في إدارة الأصول.
تخصيص صورة الخلفية بخصائص إضافية
إذا كنت ترغب في تخصيص صورة الخلفية بشكل أكبر، يمكنك إضافة خصائص CSS إضافية بعد تحديد backgroundImage. تتيح لك هذه المرونة التحكم الكامل في كيفية عرض الصورة. إليك مثال يوضح كيفية إضافة خصائص مثل backgroundRepeat و width:
<div style={{ backgroundImage : `url( ${process.env.PUBLIC_URL + '/image.png' } )` ,
backgroundRepeat : 'no-repeat' ,
width : '250px' }}>
مرحباً بالعالم
</div>
ستضيف الخصائص المحددة أعلاه النمطين background-repeat: no-repeat و width: 250px، بالإضافة إلى نمط background-image، إلى عنصر <div>. يمكنك استكشاف العديد من خصائص CSS الأخرى لتحقيق التأثير البصري المطلوب.
الخلاصة التقنية
في هذا الدليل، استعرضنا أربع طرق رئيسية وفعّالة لتعيين صور الخلفية في تطبيقات React باستخدام أنماط CSS المضمنة. سواء كنت تتعامل مع صور مستضافة خارجياً، أو صور داخل مجلد src/، أو أصول ثابتة في مجلد public/، أو حتى تحتاج إلى مرونة المسارات المطلقة باستخدام PUBLIC_URL، فإن React توفر لك الأدوات اللازمة. من الأهمية بمكان اختيار الطريقة الأنسب لمشروعك بناءً على هيكلة الملفات ومتطلبات النشر. تذكر دائماً أن استخدام الأنماط المضمنة يجب أن يكون محسوباً، وقد تكون ملفات CSS الخارجية أو وحدات CSS Modules خيارات أفضل للمشاريع الكبيرة لضمان قابلية الصيانة والأداء.