تفاعل JSX
ما هو JSX؟
JSX لتقف على JavaScript XML.
يتيح لنا JSX كتابة HTML في React.
تسهل JSX كتابة وإضافة HTML في React.
ترميز JSX
يتيح لنا JSX كتابة عناصر HTML في JavaScript ووضعها في DOM بدون أي createElement()
و / أو
appendChild()
طرق.
JSX يحول علامات HTML إلى عناصر تفاعل.
لست مطالبًا باستخدام JSX ، لكن JSX تسهل كتابة تطبيقات React.
هنا مثالان. الأول يستخدم JSX والثاني لا:
مثال 1
JSX:
const myelement = <h1>I Love JSX!</h1>;
ReactDOM.render(myelement, document.getElementById('root'));
مثال 2
بدون JSX:
const myelement = React.createElement('h1', {}, 'I do not use JSX!');
ReactDOM.render(myelement, document.getElementById('root'));
كما ترى في المثال الأول ، يتيح لنا JSX كتابة HTML مباشرة داخل كود JavaScript.
JSX هو امتداد للغة JavaScript يعتمد على ES6 ، ويتم ترجمته إلى JavaScript عادي في وقت التشغيل.
الحصول على شهادة!
95 دولارًا ENROLL
التعبيرات في JSX
باستخدام JSX ، يمكنك كتابة تعبيرات داخل أقواس معقوفة { }
.
يمكن أن يكون التعبير متغير React أو خاصية أو أي تعبير JavaScript صالح آخر. سيقوم JSX بتنفيذ التعبير وإرجاع النتيجة:
مثال
نفذ التعبير 5 + 5
:
const myelement = <h1>React is {5 + 5} times better with JSX</h1>;
إدراج كتلة كبيرة من HTML
لكتابة HTML على عدة أسطر ، ضع HTML داخل أقواس:
مثال
أنشئ قائمة بثلاثة عناصر قائمة:
const myelement = (
<ul>
<li>Apples</li>
<li>Bananas</li>
<li>Cherries</li>
</ul>
);
عنصر واحد عالي المستوى
يجب أن يتم تغليف كود HTML في عنصر مستوى أعلى واحد .
لذا ، إذا كنت ترغب في كتابة فقرتين ، يجب أن تضعهما داخل عنصر أصلي ، مثل div
عنصر.
مثال
لف فقرتين داخل عنصر DIV واحد:
const myelement = (
<div>
<p>I am a paragraph.</p>
<p>I am a paragraph too.</p>
</div>
);
سيظهر JSX خطأ إذا كان HTML غير صحيح ، أو إذا كان HTML يفتقد عنصرًا رئيسيًا.
بدلاً من ذلك ، يمكنك استخدام "جزء" لالتفاف عدة أسطر. سيؤدي هذا إلى منع إضافة عقد إضافية إلى DOM بلا داعٍ.
جزء يشبه علامة HTML فارغة <></>
:.
مثال
لف فقرتين داخل جزء:
const myelement = (
<>
<p>I am a paragraph.</p>
<p>I am a paragraph too.</p>
</>
);
يجب إغلاق العناصر
تتبع JSX قواعد XML ، وبالتالي يجب إغلاق عناصر HTML بشكل صحيح.
مثال
أغلق العناصر الفارغة بامتداد/>
const myelement = <input type="text" />;
سيظهر JSX خطأ إذا لم يتم إغلاق HTML بشكل صحيح.
فئة السمة = className
السمة class
هي سمة مستخدمة كثيرًا في HTML ، ولكن نظرًا لأن JSX يتم تقديمه على هيئة JavaScript ،
class
والكلمة الأساسية هي كلمة محجوزة في JavaScript ، فلا يُسمح لك باستخدامها في JSX.
استخدم السمة className
بدلاً من ذلك.
حل JSX هذا باستخدام className
بدلاً من ذلك. عندما يتم تقديم JSX ، فإنه يترجم className
السمات إلى class
سمات.
مثال
استخدم السمة className
بدلاً من
class
JSX:
const myelement = <h1 className="myclass">Hello World</h1>;
الشروط - عبارات إذا
تدعم React التعليمات if
، لكن ليس داخل JSX.
لتتمكن من استخدام العبارات الشرطية في JSX ، يجب عليك وضع if
العبارات خارج JSX ، أو يمكنك استخدام تعبير ثلاثي بدلاً من ذلك:
الخيار 1:
اكتب if
عبارات خارج كود JSX:
مثال
اكتب "مرحبًا" إذا كانت x
أقل من 10 ، وإلا "وداعًا":
const x = 5;
let text = "Goodbye";
if (x < 10) {
text = "Hello";
}
const myelement = <h1>{text}</h1>;
الخيار 2:
استخدم التعبيرات الثلاثية بدلاً من ذلك:
مثال
اكتب "مرحبًا" إذا كانت x
أقل من 10 ، وإلا "وداعًا":
const x = 5;
const myelement = <h1>{(x) < 10 ? "Hello" : "Goodbye"}</h1>;
لاحظ أنه لتضمين تعبير JavaScript داخل JSX ، يجب أن يتم تغليف JavaScript بأقواس معقوفة ، {}
.