Що таке JSX?
JSX (JavaScript XML) - це розширення синтаксису JavaScript, яке дозволяє писати HTML-подібний код прямо всередині JS. Він використовується в React, щоб декларативно описувати, як повинен виглядати інтерфейс (UI).
Приклад JSX:
function App() {
return <h1>Привіт, світ!</h1>;
}Цей код виглядає як HTML, але насправді він перетворюється на звичайні виклики JavaScript:
React.createElement("h1", null, "Привіт, світ!");Навіщо потрібен JSX
Без JSX ти писав би React-компоненти так:
return React.createElement("div", null,
React.createElement("h1", null, "Заголовок"),
React.createElement("p", null, "Текст параграфа")
);З JSX - набагато простіше і наочніше:
return (
<div>
<h1>Заголовок</h1>
<p>Текст параграфа</p>
</div>
);Основні особливості JSX:
- Вбудовування JavaScript у розмітку
Всередині фігурних дужок
{}можна писати JS-вирази:
const name = "Тім";
return <h1>Привіт, {name}!</h1>;- JSX - не шаблон, а синтаксис JS Все, що ти пишеш, зрештою перетворюється на JavaScript-функції (через Babel або SWC).
- Один кореневий елемент JSX-блок повинен повертати тільки один батьківський елемент:
return (
<div>
<h1>Заголовок</h1>
<p>Опис</p>
</div>
);
)
// Не можна повернути два елементи на одному рівні без обгорткиЯкщо не хочеш додавати зайвий <div>, можна використати фрагмент:
return (
<>
<h1>Заголовок</h1>
<p>Опис</p>
</>
);- Атрибути - як в HTML, але в стилі JS:
-
class->className -
for->htmlFor -
значення - в
{}:javascript<img src={imageUrl} alt="Фото" /> <button disabled={isDisabled}>Кнопка</button>
- JSX може містити компоненти
function Greeting({ name }) {
return <h2>Привіт, {name}!</h2>;
}
function App() {
return <Greeting name="Тім" />;
}Чому JSX зручний
Код читається як розмітка, але залишається силою JavaScript Можна використовувати змінні, функції і умови прямо в UI Підвищує наочність і швидкість розробки
Приклад з умовою і списком
function TodoList({ todos }) {
return (
<ul>
{todos.length === 0 ? (
<p>Немає завдань</p>
) : (
todos.map(todo => <li key={todo.id}>{todo.text}</li>)
)}
</ul>
);
}JSX дозволяє вбудовувати логіку прямо в структуру інтерфейсу - це його суперсила.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.