JSX
JavaScript XML
- Okunuşu
- cey es eks
Kısaca
JSX, kodun içine HTML benzeri işaretleme yazmayı sağlayan bir JavaScript sözdizimi uzantısıdır; çoğunlukla React ile arayüzün nasıl görüneceğini tarif eder.
JSX nedir?
JSX, 2013'te React ile birlikte tanıtıldı. Öğeleri fonksiyon çağrılarıyla kurmak yerine bir JavaScript dosyasına doğrudan <h1 className="title">Hello, {name}</h1> yazarsınız. Süslü parantezler tekrar JavaScript'e geçer; böylece değişken, hesaplama ya da fonksiyon çağrısı gibi herhangi bir ifade işaretlemenin içinde yer alabilir.
Tarayıcılar JSX'i anlamaz. Babel, TypeScript, esbuild ya da SWC gibi bir derleyici her etiketi, bir öğe nesnesi oluşturan sıradan bir fonksiyon çağrısına çevirir: başta React.createElement, bugün ise genellikle React'in JSX çalışma zamanından bir fonksiyon. .tsx uzantısı, TypeScript dosyalarındaki aynı sözdizimidir ve her prop için tür kontrolü yapar.
JSX JavaScript olduğu için listeler ve koşullar sıradan kodla yazılır: bir listeyi render etmek için items.map(...), bir şeyi koşullu göstermek için && ya da üçlü operatör. Bazı adlar JavaScript özellikleri oldukları için HTML'den farklıdır: class yerine className, for yerine htmlFor, onClick gibi camelCase olay işleyicileri.
Sık yapılan bir yanlış, JSX'in JavaScript içindeki HTML olduğunu ya da yalnızca React ile çalıştığını düşünmektir. Nesne oluşturmaya yarayan bir sözdizimidir; bu yüzden ifadeler otomatik olarak escape edilir ve bu birçok XSS saldırısına karşı korur. Preact ve Solid gibi kütüphaneler de JSX'i kendi çalışma zamanlarıyla kullanır.
Önemli noktalar
- JSX, JavaScript içinde HTML'e benzeyen işaretleme yazmayı sağlar.
- 2013'te React ile birlikte tanıtıldı.
- Bir derleyici her etiketi bir fonksiyon çağrısına çevirir; TSX TypeScript biçimidir.
- Süslü parantezler herhangi bir JavaScript ifadesini işaretlemeye yerleştirir.
- Nitelikler className ve onClick gibi JavaScript adlarını izler.
Örnek
function ProductList({ products, onBuy }) {
return (
<ul className="products">
{products.length === 0 && <li>No products yet</li>}
{products.map((p) => (
<li key={p.id}>
{p.name}: {p.price.toFixed(2)} €
<button onClick={() => onBuy(p.id)}>Buy</button>
</li>
))}
</ul>
);
}
// <h1 className="title">Hi</h1> compiles roughly to:
// jsx("h1", { className: "title", children: "Hi" })Sık sorulan sorular
React kullanmak için JSX şart mı?
Hayır. React'in öğe fonksiyonlarını doğrudan çağırabilirsiniz, ama JSX okunması çok daha kolaydır ve neredeyse her React projesi onu kullanır.
JSX ile TSX arasındaki fark nedir?
TSX, bir TypeScript dosyasındaki JSX'tir. Sözdizimi aynıdır; TypeScript ayrıca her bileşene geçirilen prop'ları da kontrol eder.
JSX neden class yerine className kullanır?
Çünkü JSX, class'ın ayrılmış bir kelime olduğu JavaScript'e derlenir; React de HTML nitelik adlarını değil, className ve htmlFor gibi DOM özellik adlarını izler.
İlgili sayfalar
- ReactWeb Geliştirme, s. 37React, veri değişince otomatik güncellenen, yeniden kullanılabilir bileşenlerle kullanıcı arayüzü kurmaya yarayan açık kaynaklı JavaScript kütüphanesidir.
- JavaScriptWeb Geliştirme, s. 25JavaScript, web tarayıcılarında sayfaları etkileşimli hale getiren ve Node.js gibi çalışma ortamlarıyla sunucularda da çalışan programlama dilidir.
- TypeScriptWeb Geliştirme, s. 51TypeScript, JavaScript üzerine statik tipler ekleyerek birçok hatayı kod çalışmadan yakalayan ve düz JavaScript'e derlenen bir programlama dilidir.
- TranspilerWeb Geliştirme, s. 49Transpiler, kaynak kodu bir dilden ya da dil sürümünden benzer soyutlama düzeyindeki bir başkasına, örneğin TypeScript'ten JavaScript'e çeviren araçtır.
- Sanal DOMWeb Geliştirme, s. 39Sanal DOM, sayfanın öğe ağacının JavaScript belleğinde tutulan hafif bir kopyasıdır; arayüz kütüphaneleri onu karşılaştırarak gerçek DOM'u verimli günceller.
- XSSGüvenlik, s. 47XSS, saldırganın güvenilir bir siteye kötü amaçlı JavaScript enjekte edip bu kodu diğer kullanıcıların tarayıcısında çalıştırmasına yol açan zafiyettir.
- React Hook'larıWeb Geliştirme, s. 38React hook'ları, useState ve useEffect gibi, fonksiyon bileşenlerinin state tutmasını, yan etki çalıştırmasını ve mantık paylaşmasını sağlayan fonksiyonlardır.
- UI BileşeniWeb Geliştirme, s. 52UI bileşeni, buton, form ya da kart gibi arayüzün yeniden kullanılabilen bir parçasıdır; işaretlemesini, stilini ve davranışını bir arada taşır.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin