Reaguj JSX
Co to jest JSX?
JSX oznacza JavaScript XML.
JSX pozwala nam pisać HTML w React.
JSX ułatwia pisanie i dodawanie HTML w React.
Kodowanie JSX
JSX pozwala nam pisać elementy HTML w JavaScript i umieszczać je w DOM bez żadnych createElement()
i/lub
appendChild()
metod.
JSX konwertuje tagi HTML na elementy React.
Nie musisz używać JSX, ale JSX ułatwia pisanie aplikacji React.
Oto dwa przykłady. Pierwszy używa JSX, a drugi nie:
Przykład 1
JSX:
const myelement = <h1>I Love JSX!</h1>;
ReactDOM.render(myelement, document.getElementById('root'));
Przykład 2
Bez JSX:
const myelement = React.createElement('h1', {}, 'I do not use JSX!');
ReactDOM.render(myelement, document.getElementById('root'));
Jak widać w pierwszym przykładzie, JSX pozwala nam pisać HTML bezpośrednio w kodzie JavaScript.
JSX to rozszerzenie języka JavaScript oparte na ES6 i jest tłumaczone na zwykły JavaScript w czasie wykonywania.
Zostać certyfikowanym!
95 $ ZAPISZ
Wyrażenia w JSX
Dzięki JSX możesz pisać wyrażenia wewnątrz nawiasów klamrowych { }
.
Wyrażenie może być zmienną React, właściwością lub dowolnym innym poprawnym wyrażeniem JavaScript. JSX wykona wyrażenie i zwróci wynik:
Przykład
Wykonaj wyrażenie 5 + 5
:
const myelement = <h1>React is {5 + 5} times better with JSX</h1>;
Wstawianie dużego bloku HTML
Aby napisać kod HTML w wielu wierszach, umieść kod HTML w nawiasach:
Przykład
Utwórz listę z trzema elementami listy:
const myelement = (
<ul>
<li>Apples</li>
<li>Bananas</li>
<li>Cherries</li>
</ul>
);
Jeden element najwyższego poziomu
Kod HTML musi być opakowany w JEDEN element najwyższego poziomu.
Więc jeśli lubisz napisać dwa akapity, musisz umieścić je wewnątrz elementu nadrzędnego, tak jak div
element.
Przykład
Zawiń dwa akapity w jeden element DIV:
const myelement = (
<div>
<p>I am a paragraph.</p>
<p>I am a paragraph too.</p>
</div>
);
JSX zgłosi błąd, jeśli HTML nie jest poprawny lub jeśli HTML nie zawiera elementu nadrzędnego.
Alternatywnie możesz użyć „fragmentu”, aby zawinąć wiele linii. Zapobiegnie to niepotrzebnemu dodawaniu dodatkowych węzłów do DOM.
Fragment wygląda jak pusty znacznik HTML: <></>
.
Przykład
Zawiń dwa akapity wewnątrz fragmentu:
const myelement = (
<>
<p>I am a paragraph.</p>
<p>I am a paragraph too.</p>
</>
);
Elementy muszą być zamknięte
JSX przestrzega reguł XML, dlatego elementy HTML muszą być poprawnie zamknięte.
Przykład
Zamknij puste elementy za pomocą />
const myelement = <input type="text" />;
JSX zgłosi błąd, jeśli kod HTML nie zostanie poprawnie zamknięty.
Klasa atrybutu = nazwaKlasy
Atrybut jest class
często używanym atrybutem w HTML, ale ponieważ JSX jest renderowany jako JavaScript, a
class
słowo kluczowe jest słowem zastrzeżonym w JavaScript, nie można go używać w JSX.
className
Zamiast tego użyj atrybutu .
JSX rozwiązał to, używając className
zamiast tego. Kiedy JSX jest renderowany, tłumaczy className
atrybuty na class
atrybuty.
Przykład
Użyj atrybutu className
zamiast
class
w JSX:
const myelement = <h1 className="myclass">Hello World</h1>;
Warunki - oświadczenia if
React obsługuje if
instrukcje, ale nie wewnątrz JSX.
Aby móc używać instrukcji warunkowych w JSX, powinieneś umieścić if
instrukcje poza JSX lub możesz zamiast tego użyć wyrażenia trójskładnikowego:
Opcja 1:
Napisz if
oświadczenia poza kodem JSX:
Przykład
Napisz "Hello", jeśli x
jest mniej niż 10, w przeciwnym razie "Do widzenia":
const x = 5;
let text = "Goodbye";
if (x < 10) {
text = "Hello";
}
const myelement = <h1>{text}</h1>;
Opcja 2:
Zamiast tego użyj wyrażeń trójskładnikowych:
Przykład
Napisz "Hello", jeśli x
jest mniej niż 10, w przeciwnym razie "Do widzenia":
const x = 5;
const myelement = <h1>{(x) < 10 ? "Hello" : "Goodbye"}</h1>;
Zauważ , że w celu osadzenia wyrażenia JavaScript wewnątrz JSX, JavaScript musi być owinięty w nawiasy klamrowe, {}
.