diff --git a/src/content/learn/javascript-in-jsx-with-curly-braces.md b/src/content/learn/javascript-in-jsx-with-curly-braces.md index 467eb6a1d..165d2b064 100644 --- a/src/content/learn/javascript-in-jsx-with-curly-braces.md +++ b/src/content/learn/javascript-in-jsx-with-curly-braces.md @@ -28,8 +28,8 @@ export default function Avatar() { return ( غريغوريو واي زارا ); } @@ -41,7 +41,7 @@ export default function Avatar() { -هنا، يتم تمرير `"https://i.imgur.com/7vQD0fPs.jpg"` و `"غريغوريو واي زارا"` كنصوص. +هنا، يتم تمرير `"https://i.imgur.com/NpGVLas.jpg"` و `"نجيب محفوظ"` كنصوص. ولكن ماذا لو كنت ترغب في تحديد `src` أو نص `alt` بشكل ديناميكي؟ يمكنك **استخدام قيمة من JavaScript عن طريق استبدال `"`و `"` بـ `{`و `}`**: @@ -49,8 +49,8 @@ export default function Avatar() { ```js export default function Avatar() { - const avatar = 'https://i.imgur.com/7vQD0fPs.jpg'; - const description = 'غريغوريو واي زارا'; + const avatar = 'https://i.imgur.com/NpGVLas.jpg'; + const description = 'نجيب محفوظ'; return ( قائمة مهام {name} ); @@ -86,7 +86,7 @@ export default function TodoList() { -حاول تغيير قيمة `name` من `'غريغوريو واي زارا'` إلى `'هايدي لامار'`. لاحظ كيف يتغير عنوان القائمة؟ +حاول تغيير قيمة `name` من `'نجيب محفوظ'` إلى `'أحمد زويل'`. لاحظ كيف يتغير عنوان القائمة؟ أي تعبير JavaScript سيعمل بين الأقواس المنحنية، بما في ذلك استدعاءات الدوال مثل `formatDate()`: @@ -96,7 +96,7 @@ const today = new Date(); function formatDate(date) { return new Intl.DateTimeFormat( - 'en-US', + 'ar-EG', { weekday: 'long' } ).format(date); } @@ -114,12 +114,12 @@ export default function TodoList() { يمكنك استخدام الأقواس المنحنية في JSX بطريقتين فقط: -1. **كنص** مباشرة داخل وسم JSX: `

{name}'s قائمة المهام

` يعمل، ولكن `<{tag}>قائمة المهام لـغريغوريو واي زارا ` لن يعمل. +1. **كنص** مباشرة داخل وسم JSX: `

قائمة مهام {name}

` يعمل، ولكن `<{tag}>قائمة مهام نجيب محفوظ ` لن يعمل. 2. **كخصائص** تأتي فورًا بعد علامة `=`: `src={avatar}` ستقرأ قيمة المتغير `avatar`، ولكن `src="{avatar}"` ستمرره `"{avatar}"` كنص. ## استخدام "أقواس منحنية مزدوجة": CSS وكائنات أخرى داخل JSX {/*using-double-curlies-css-and-other-objects-in-jsx*/} -بالإضافة إلى النصوص والأرقام وتعابير JavaScript الأخرى، يمكنك تمرير الكائنات في JSX. يتم تمييز الكائنات أيضًا بواسطة الأقواس المنحنية، مثل `{ name: "هايدي لامار", inventions: 5 }`. لذلك، لتمرير كائن JavaScript في JSX، يجب عليك إحاطة الكائن بزوج آخر من الأقواس المنحنية: `person={{ name: "هايدي لامار", inventions: 5 }}`. +بالإضافة إلى النصوص والأرقام وتعابير JavaScript الأخرى، يمكنك تمرير الكائنات في JSX. يتم تمييز الكائنات أيضًا بواسطة الأقواس المنحنية، مثل `{ name: "أحمد زويل", inventions: 5 }`. لذلك، لتمرير كائن JavaScript في JSX، يجب عليك إحاطة الكائن بزوج آخر من الأقواس المنحنية: `person={{ name: "أحمد زويل", inventions: 5 }}`. قد ترى ذلك في أنماط CSS المضمنة فيJSX. React لا تتطلب منك استخدام أنماط CSS مضمنة (فئة CSS يعمل جيداً في معظم الحالات). ولكن عندما تحتاج إلى أسلوب مضمن، يمكنك تمرير كائن إلى خاصية `style`: @@ -132,9 +132,9 @@ export default function TodoList() { backgroundColor: 'black', color: 'pink' }}> -
  • تحسين الهاتف
  • -
  • تجهيز محاضرات عن الطيران
  • -
  • العمل على محرك بالوقود الكحولي
  • +
  • كتابة روايات وأعمال أدبية
  • +
  • الدفاع عن الحرية الأدبية والتعبير
  • +
  • تعزيز الوعي الثقافي والأدبي
  • ); } @@ -176,7 +176,7 @@ ul { padding: 20px 20px 20px 40px; margin: 0; } ```js const person = { - name: 'غريغوريو واي زارا', + name: 'نجيب محفوظ', theme: { backgroundColor: 'black', color: 'pink' @@ -186,16 +186,16 @@ const person = { export default function TodoList() { return (
    -

    {person.name}'s Todos

    +

    مهام {person.name}

    غريغوريو واي زارا
    ); @@ -214,7 +214,7 @@ body > div > div { padding: 20px; } ```js const person = { - name: 'غريغوريو واي زارا', + name: 'نجيب محفوظ', theme: { backgroundColor: 'black', color: 'pink' @@ -252,7 +252,7 @@ JSXهي لغة قوالب بسيطة جدًا لأنها تسمح لك بتنظ ```js const person = { - name: 'غريغوريو واي زارا', + name: 'نجيب محفوظ', theme: { backgroundColor: 'black', color: 'pink' @@ -262,16 +262,16 @@ const person = { export default function TodoList() { return (
    -

    {person}'s Todos

    +

    مهام {person}

    Gregorio Y. Zara
    ); @@ -300,7 +300,7 @@ body > div > div { padding: 20px; } ```js const person = { - name: 'غريغوريو واي زارا', + name: 'نجيب محفوظ', theme: { backgroundColor: 'black', color: 'pink' @@ -310,16 +310,16 @@ const person = { export default function TodoList() { return (
    -

    {person.name}'s Todos

    +

    مهام {person.name}

    غريغوريو واي زارا
    ); @@ -344,7 +344,7 @@ body > div > div { padding: 20px; } ```js const person = { - name: 'غريغوريو واي زارا', + name: 'نجيب محفوظ', theme: { backgroundColor: 'black', color: 'pink' @@ -354,16 +354,16 @@ const person = { export default function TodoList() { return (
    -

    {person.name}'s Todos

    +

    مهام {person.name}

    غريغوريو واي زارا
    ); @@ -386,8 +386,8 @@ body > div > div { padding: 20px; } ```js const person = { - name: 'غريغوريو واي زارا', - imageUrl: "https://i.imgur.com/7vQD0fPs.jpg", + name: 'نجيب محفوظ', + imageUrl: "https://i.imgur.com/NpGVLas.jpg", theme: { backgroundColor: 'black', color: 'pink' @@ -397,16 +397,16 @@ const person = { export default function TodoList() { return (
    -

    {person.name}'s Todos

    +

    مهام {person.name}

    غريغوريو واي زارا
    ); @@ -427,7 +427,7 @@ body > div > div { padding: 20px; } في الكائن أدناه، يتم تقسيم العنوان الكامل للصورة إلى أربعة أجزاء: العنوان الأساس و`imageId` و`imageSize` وامتداد الملف. -نريد أن يتم دمج عنوان URL للصورة باستخدام هذه الخصائص معًا: العنوان الأساس (دائمًا `'https://i.imgur.com/'`) و`imageId` (`'7vQD0fP'`) و `imageSize` (`'s'`)، وامتداد الملف (دائمًا `'.jpg'`). ومع ذلك، هناك خطأ في كيفية تحديد الوسم `` لخاصية `src` الخاصة به. +نريد أن يتم دمج عنوان URL للصورة باستخدام هذه الخصائص معًا: العنوان الأساس (دائمًا `'https://i.imgur.com/'`) و`imageId` (`'NpGVLas'`) و `imageSize` (`'s'`)، وامتداد الملف (دائمًا `'.jpg'`). ومع ذلك، هناك خطأ في كيفية تحديد الوسم `` لخاصية `src` الخاصة به. هل يمكنك إصلاح الخطأ؟ @@ -437,8 +437,8 @@ body > div > div { padding: 20px; } const baseUrl = 'https://i.imgur.com/'; const person = { - name: 'غريغوريو واي زارا', - imageId: '7vQD0fP', + name: 'نجيب محفوظ', + imageId: 'NpGVLas', imageSize: 's', theme: { backgroundColor: 'black', @@ -449,16 +449,16 @@ const person = { export default function TodoList() { return (
    -

    {person.name}'s Todos

    +

    مهام {person.name}

    {person.name}
    ); @@ -488,8 +488,8 @@ body > div > div { padding: 20px; } ```js const baseUrl = 'https://i.imgur.com/'; const person = { - name: 'غريغوريو واي زارا', - imageId: '7vQD0fP', + name: 'نجيب محفوظ', + imageId: 'NpGVLas', imageSize: 's', theme: { backgroundColor: 'black', @@ -500,16 +500,16 @@ const person = { export default function TodoList() { return (
    -

    {person.name}'s Todos

    +

    مهام {person.name}

    {person.name}
    ); @@ -532,8 +532,8 @@ body > div > div { padding: 20px; } import { getImageUrl } from './utils.js' const person = { - name: 'غريغوريو واي زارا', - imageId: '7vQD0fP', + name: 'نجيب محفوظ', + imageId: 'NpGVLas', imageSize: 's', theme: { backgroundColor: 'black', @@ -544,16 +544,16 @@ const person = { export default function TodoList() { return (
    -

    {person.name}'s Todos

    +

    مهام {person.name}

    {person.name}
    );