Muhtemelen bunu uzun zaman önce öğrenmeliydim, ama ne yazık ki buradayız. JSX'in hangi işlevi kullanmasını istediğinizi söyleyebildiğiniz ortaya çıktı. Evet, JSX'in sahip olduğu yalnızca bir birincil dönüşümü vardır. JavaScript'teki açılı parantezleri bir işlev çağrısına dönüştürür. Yani, JavaScript'e şöyle bir satır yazarsanız:
Hello
İşlemden sonra (muhtemelen Babel ve JSX eklentisiyle), varsayılan olarak şunları alacaksınız:
React.createElement("div", ( class: "big" ), "Hello");
Ancak, JSX'e kendi işlevinizi kullanmak istediğinizi söyleyen bir yönerge yorumu eklerseniz, bu çıktıyı değiştirebilirsiniz:
/* @jsx myFunction */ Hello
Dönüşür:
/* @jsx myFunction */ myFunction("div", ( class: "big" ), "Hello");
Bu, kendi fonksiyonumuzu yazabileceğimiz anlamına gelir. Biraz tuhaf, ama tamam.
Gerçek kullanım durumu, Preact gibi React dışı kitaplıklar içindir. Bunu Jason Miller'ın örneklerine bakarak öğrendim:
Vue bu şekilde de yapılabilir. Hem Vue hem de Preact'in h
bunun için tasarlanmış bu özel işlevi sunduğunu unutmayın:
Valeri Karpov'un "3 React Olmayan Örneklerle JSX'e Genel Bakış" adlı blog gönderisinde bazı ilginç kullanım örnekleri var.