Junior
Cosa non è consentito scrivere nel codice JavaScript all'interno di JSX?
sobes.tech AI
Risposta dell'AI
Non è consentito utilizzare le seguenti strutture:
- Operatori di assegnazione (tranne all'interno degli attributi, dove viene assegnato un valore).
- Operatore ternario senza un ritorno di valore esplicito (
?:). - Cicli (
for,while,do/while) senza essere racchiusi in funzioni che restituiscono elementi JSX. - Istruzioni
if/elsesenza essere racchiuse in funzioni che restituiscono elementi JSX, o senza usare l'operatore ternario. - Blocchi di codice (
{}) senza un ritorno esplicito di elementi JSX (ad esempio, solo dichiarazioni di variabili). - Commenti annidati
// dentro JSXo/* dentro JSX */, tranne commenti dopo operatori o tra attributi/elementi.
È consentito usare:
- Espressioni che restituiscono valori (variabili, funzioni, chiamate a metodi).
- Operatori logici
&&e||. - Operatore ternario
? :. - Oggetti e array (se vengono renderizzati come lista o elemento).
- Chiamate a metodi di array (
map,filter, ecc.) che restituiscono elementi JSX. - Funzioni che restituiscono elementi JSX.
Esempio
// Non consentito
const element = <p>
let x = 10; // Assegnamento
x++; // Incremento
</p>;
// Non consentito
const element = <p>
if (condition) { // Istruzione if
return 'True';
} else {
return 'False';
}
</p>;
// Consentito con funzioni
const renderContent = (condition) => {
if (condition) {
return <p>'True'</p>;
} else {
return <p>'False'</p>;
}
};
const element = <div>{renderContent(true)}</div>;
// Consentito con operatore ternario
const element = <p>{condition ? 'True' : 'False'}</p>;
// Consentito con &&
const element = <div>{condition && <p>Visible</p>}</div>;
// Consentito con map
const listItems = items.map(item => <li key={item.id}>{item.name}</li>);
const element = <ul>{listItems}</ul>;