عبور از jsx در react

پوریا سبحانلو

پوریا سبحانلو

29 دی 1400
دقیقه 6
عبور از  jsx در  react
react

اگر به تازگی وارد فرایند یادگیری فریمورک React شده‌اید یکسری متغیرها، تکنولوژی‌ها و مفاهیم وجود دارند که مطمئنا در وهله اول برای شما عجیب غریب و بیگانه هستند. این موضوع عجیبی نیز نیست چرا که برای همه ما پیش خواهد آمد، ما هیچ چیز را از ابتدا نمی‌دانیم و همه چیز آهسته آهسته به ما تفهیم می‌شود.

JSX در React: چیست و چه کاربردی دارد؟

 

React یکی از محبوب‌ترین کتابخانه‌های JavaScript برای ساخت رابط کاربری است. یکی از ویژگی‌هایی که React را از سایر کتابخانه‌ها متمایز می‌کند، استفاده از زبان نشانه‌گذاری خاصی به نام JSX (JavaScript XML) است. JSX ترکیبی از JavaScript و HTML است که به توسعه‌دهندگان اجازه می‌دهد تا ساختار رابط کاربری را در کنار منطق برنامه‌نویسی بنویسند. در این مقاله، به صورت جامع JSX را بررسی می‌کنیم، با کاربردهای آن آشنا می‌شویم و کدهای نمونه ارائه می‌دهیم.


JSX چیست؟

JSX یک افزونه‌ی سینتکسی برای JavaScript است که توسط React معرفی شد. این زبان ترکیبی به شما اجازه می‌دهد تا کد HTMLمانند را در داخل فایل JavaScript بنویسید.

مثال ساده:

const element = <h1>Hello, world!</h1>;

کد بالا در ظاهر شبیه HTML است، اما در واقع توسط React به دستور React.createElement تبدیل می‌شود.


چرا از JSX استفاده می‌کنیم؟

خوانایی بیشتر: کدی که با JSX نوشته شده است، بسیار خواناتر از کدی است که فقط با React.createElement نوشته می‌شود.

نزدیکی به HTML: توسعه‌دهندگان وب که به HTML آشنایی دارند، به راحتی می‌توانند JSX را درک کنند.

امکان استفاده از JavaScript در HTML: شما می‌توانید با استفاده از curly braces ({}) هر عبارت جاوااسکریپتی را داخل JSX بنویسید.


JSX چگونه کار می‌کند؟

در واقع JSX بعد از کامپایل تبدیل به کدهای JavaScript می‌شود. برای مثال:

const element = <h1 className="greeting">Hello, world!</h1>;

تبدیل می‌شود به:

const element = React.createElement(
  'h1',
  { className: 'greeting' },
  'Hello, world!'
);

 


استفاده از متغیرها در JSX

می‌توان به راحتی از متغیرهای JavaScript داخل JSX استفاده کرد:

const name = 'Pouya';
const element = <h1>Hello, {name}</h1>;

شرط‌ها در JSX

برای استفاده از شرط‌ها، معمولاً از ternary operator یا عملگر منطقی && استفاده می‌شود:

const isLoggedIn = true;
const element = (
  <div>
    {isLoggedIn ? <p>Welcome back!</p> : <p>Please log in</p>}
  </div>
);

لیست‌ها در JSX

برای نمایش لیستی از آیتم‌ها، می‌توان از map استفاده کرد:

const items = ['Apple', 'Banana', 'Orange'];
const listItems = items.map((item, index) => <li key={index}>{item}</li>);

return <ul>{listItems}</ul>;

استایل‌دهی در JSX

می‌توان به دو روش به عناصر JSX استایل داد:

1. CSS کلاس‌ها:

<h1 className="title">Hello</h1>

2. استایل درون‌خطی:

<h1 style={{ color: 'red', fontSize: '20px' }}>Hello</h1>

توابع و کامپوننت‌ها در JSX

کامپوننت تابعی ساده:

function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

استفاده از کامپوننت:

<Welcome name="Pouya" />

Fragmentها در JSX

برای گروه‌بندی چند عنصر بدون اضافه کردن یک عنصر DOM اضافی:

<>
  <h1>Title</h1>
  <p>Content</p>
</>

استفاده از JSX در توابع پیچیده‌تر

function ProductList({ products }) {
  if (!products.length) return <p>No products found.</p>;

  return (
    <ul>
      {products.map(product => (
        <li key={product.id}>{product.name}</li>
      ))}
    </ul>
  );
}

JSX و امنیت

هرگز HTML خام را مستقیماً در JSX رندر نکنید مگر با dangerouslySetInnerHTML و با احتیاط بالا:

<div dangerouslySetInnerHTML={{ __html: someHtml }} />

استفاده از این ویژگی ممکن است سایت شما را در معرض حملات XSS قرار دهد.


 


پوریا سبحانلو

پوریا سبحانلو

سلام من پوریام

یه php کاری که ریز نگاهی هم به فریم ورک های js داره


admoon من اینجام

اینارو هم یه نگاه بنداز