Tepki JSX


JSX nedir?

JSX, JavaScript XML anlamına gelir.

JSX, React'te HTML yazmamıza izin verir.

JSX, React'te HTML yazmayı ve eklemeyi kolaylaştırır.


JSX kodlama

JSX, HTML öğelerini JavaScript'te yazmamıza ve bunları herhangi bir createElement()  ve/veya appendChild()yöntem kullanmadan DOM'a yerleştirmemize olanak tanır.

JSX, HTML etiketlerini tepki öğelerine dönüştürür.

JSX kullanmanız gerekmez, ancak JSX, React uygulamalarını yazmayı kolaylaştırır.

İşte iki örnek. Birincisi JSX kullanır ve ikincisi şunları yapmaz:

örnek 1

JSX:

const myelement = <h1>I Love JSX!</h1>;

ReactDOM.render(myelement, document.getElementById('root'));

Örnek 2

JSX olmadan:

const myelement = React.createElement('h1', {}, 'I do not use JSX!');

ReactDOM.render(myelement, document.getElementById('root'));

İlk örnekte görebileceğiniz gibi, JSX, HTML'yi doğrudan JavaScript kodunun içine yazmamıza izin veriyor.

JSX, JavaScript dilinin ES6'ya dayalı bir uzantısıdır ve çalışma zamanında normal JavaScript'e çevrilir.


w3schools CERTIFIED . 2022

Sertikalı olmak!

React modüllerini tamamlayın, alıştırmaları yapın, sınava girin ve w3schools sertifikalı olun!

95 $ KAYIT

JSX'teki ifadeler

JSX ile küme parantezleri içinde ifadeler yazabilirsiniz { }.

İfade, bir React değişkeni veya özelliği veya herhangi bir geçerli JavaScript ifadesi olabilir. JSX, ifadeyi yürütecek ve sonucu döndürecektir:

Örnek

İfadeyi yürütün 5 + 5:

const myelement = <h1>React is {5 + 5} times better with JSX</h1>;


Büyük Bir HTML Bloğu Ekleme

Birden çok satıra HTML yazmak için HTML'yi parantez içine alın:

Örnek

Üç liste öğesi içeren bir liste oluşturun:

const myelement = (
  <ul>
    <li>Apples</li>
    <li>Bananas</li>
    <li>Cherries</li>
  </ul>
);


Bir Üst Düzey Öğe

HTML kodu, BİR üst düzey öğeye sarılmalıdır.

Bu nedenle, iki paragraf yazmayı seviyorsanız , bunları bir öğe gibi bir üst öğenin içine koymalısınız div.

Örnek

İki paragrafı bir DIV öğesinin içine sarın:

const myelement = (
  <div>
    <p>I am a paragraph.</p>
    <p>I am a paragraph too.</p>
  </div>
);

HTML doğru değilse veya HTML bir üst öğeyi kaçırırsa, JSX bir hata verir.

Alternatif olarak, birden çok satırı sarmak için bir "parça" kullanabilirsiniz. Bu, DOM'a gereksiz yere fazladan düğüm eklenmesini önleyecektir.

Bir parça boş bir HTML etiketine benziyor: <></>.

Örnek

Bir parçanın içine iki paragraf sarın:

const myelement = (
  <>
    <p>I am a paragraph.</p>
    <p>I am a paragraph too.</p>
  </>
);


Elemanlar Kapatılmalı

JSX, XML kurallarına uyar ve bu nedenle HTML öğeleri uygun şekilde kapatılmalıdır.

Örnek

ile boş öğeleri kapatın />

const myelement = <input type="text" />;

HTML düzgün kapatılmazsa JSX bir hata verir.


Özellik sınıfı = sınıfAdı

classNitelik, HTML'de çok kullanılan bir niteliktir, ancak JSX JavaScript olarak işlendiğinden ve anahtar classkelime JavaScript'te ayrılmış bir kelime olduğundan, onu JSX'te kullanmanıza izin verilmez.

Bunun yerine özniteliği classNamekullanın.

JSX bunu classNameyerine kullanarak çözdü. JSX işlendiğinde, className nitelikleri niteliklere çevirir class.

Örnek

JSX classNameyerine özniteliği kullanın:class

const myelement = <h1 className="myclass">Hello World</h1>;


Koşullar - if ifadeleri

React, ififadeleri destekler, ancak JSX'in içinde değildir.

JSX'te koşullu ifadeleri kullanabilmek için, if ifadeleri JSX'in dışına koymalısınız veya bunun yerine üçlü bir ifade kullanabilirsiniz:

Seçenek 1:

ifJSX kodunun dışında ifadeler yazın :

Örnek

x10'dan küçükse "Merhaba", değilse "Hoşçakal" yazın :

const x = 5;
let text = "Goodbye";
if (x < 10) {
  text = "Hello";
}

const myelement = <h1>{text}</h1>;

Seçenek 2:

Bunun yerine üçlü ifadeler kullanın:

Örnek

x10'dan küçükse "Merhaba", değilse "Hoşçakal" yazın :

const x = 5;

const myelement = <h1>{(x) < 10 ? "Hello" : "Goodbye"}</h1>;

JSX içine bir JavaScript ifadesi gömmek için JavaScript'in küme parantezleri ile sarılması gerektiğini unutmayın {}.


Egzersizlerle Kendinizi Test Edin

Egzersiz yapmak:

JSX kullanmadan bir <p> öğesi oluşturun.

const paragraph = React.createElement(, {}, 'This is a paragraph without using JSX!');

ReactDOM.render(paragraph, document.getElementById('root'));