Apa itu JSX?
JSX (JavaScript XML) adalah ekstensi sintaks untuk JavaScript yang digunakan dengan React untuk menggambarkan seperti apa UI seharusnya terlihat. JSX memungkinkan Anda untuk menulis kode yang mirip dengan HTML di dalam file JavaScript. Meskipun terlihat seperti HTML, JSX sebenarnya adalah sintaks yang akan dikompilasi menjadi panggilan fungsi JavaScript.
Fitur Utama JSX:
Ekspresif: JSX memungkinkan Anda menulis elemen UI dengan sintaks yang mirip HTML, membuat kode lebih mudah dibaca dan dipahami.
Interoperabilitas dengan JavaScript: Anda dapat menyematkan ekspresi JavaScript dalam JSX menggunakan tanda kurung kurawal
{}
.Bersifat Deklaratif: JSX mendeklarasikan apa yang ingin Anda tampilkan di UI, bukan bagaimana cara menampilkannya.
Perbandingan: JSX vs JavaScript Murni
Tanpa JSX
Berikut adalah contoh komponen React yang ditulis tanpa JSX:
const element = React.createElement(
'h1',
{ className: 'greeting' },
'Hello, world!'
);
ReactDOM.render(
element,
document.getElementById('root')
);
Dengan JSX
Berikut adalah contoh yang sama ditulis dengan JSX:
const element = <h1 className="greeting">Hello, world!</h1>;
ReactDOM.render(
element,
document.getElementById('root')
);
Contoh Lengkap dengan JSX
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>JSX Example</title>
</head>
<body>
<div id="root"></div>
<script src="https://unpkg.com/react@17/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
<script src="script.js"></script>
</body>
</html>
JavaScript (script.js)
const App = () => {
const name = 'World';
return (
<div>
<h1>Hello, {name}!</h1>
<p>This is a paragraph with JSX.</p>
</div>
);
};
ReactDOM.render(
<App />,
document.getElementById('root')
);
Penjelasan Kode
HTML:
div#root
: Elemen tempat React akan merender komponen.
JavaScript:
Tanpa JSX: Menggunakan
React.createElement
untuk membuat elemen React.Dengan JSX: Menggunakan sintaks mirip HTML yang dikompilasi menjadi panggilan
React.createElement
di balik layar.App Component: Komponen fungsi yang menggunakan JSX untuk mendeklarasikan UI.
ReactDOM.render: Merender komponen
App
ke dalam elemendiv#root
.
Sumber
JSX membuat kode React lebih mudah ditulis dan dipahami dengan memungkinkan Anda menulis elemen UI menggunakan sintaks yang mirip dengan HTML. Ini adalah fitur yang sangat berguna dan banyak digunakan dalam pengembangan aplikasi React.
Last updated