Junior
Какво не е позволено да се пише в JavaScript код в рамките на JSX?
sobes.tech AI
Отговор от AI
Забранено е използването на следните конструкции:
- Оператори за присвояване (освен вътре в атрибути, където се присвоява стойност).
- Тернарен оператор без явен връщане на стойност (
?:). - Цикли (
for,while,do/while) без обвиване във функции, които връщат JSX елементи. - Инструкции
if/elseбез обвиване във функции, които връщат JSX елементи, или без използване на тернарен оператор. - Блокове от код (
{}) без явен връщане на JSX елементи (например, само декларации на променливи). - Вложени коментари
// вътре в JSXили/* вътре в JSX */, освен коментари след оператори или между атрибути/елементи.
Позволено е да се използват:
- Изрази, които връщат стойности (променливи, функции, извиквания на методи).
- Логически оператори
&&и||. - Тернарен оператор
? :. - Обекти и масиви (ако се рендерират като списък или елемент).
- Обаждания на методи на масиви (
map,filterи др.), които връщат JSX елементи. - Функции, които връщат JSX елементи.
Пример
// Не е позволено
const element = <p>
let x = 10; // Присвояване
x++; // Инкремент
</p>;
// Не е позволено
const element = <p>
if (condition) { // if инструкция
return 'True';
} else {
return 'False';
}
</p>;
// Позволено с използване на функции
const renderContent = (condition) => {
if (condition) {
return <p>'True'</p>;
} else {
return <p>'False'</p>;
}
};
const element = <div>{renderContent(true)}</div>;
// Позволено с тернарен оператор
const element = <p>{condition ? 'True' : 'False'}</p>;
// Позволено с &&
const element = <div>{condition && <p>Visible</p>}</div>;
// Позволено с map
const listItems = items.map(item => <li key={item.id}>{item.name}</li>);
const element = <ul>{listItems}</ul>;