Minun olisi pitänyt oppia tämä kauan sitten, mutta valitettavasti tässä olemme. Osoittautuu, että voit kertoa minkä toiminnon haluat JSX: n käyttävän. Jep, JSX: llä on todellakin vain yksi ensisijainen muunnos. Se muuttaa JavaScript-kulmasulkeet funktiokutsuksi. Joten, jos kirjoitat tällaisen rivin JavaScriptiin:
Hello
Käsittelyn jälkeen (todennäköisesti Babelin ja JSX-laajennuksen kanssa) saat oletuksena:
React.createElement("div", ( class: "big" ), "Hello");
Mutta jos sisällytät direktiivikommentin, joka kertoo JSX: lle, että haluat käyttää omaa toimintoa, voit muuttaa tuotosta:
/* @jsx myFunction */ Hello
Muuttuu:
/* @jsx myFunction */ myFunction("div", ( class: "big" ), "Hello");
Se tarkoittaa, että voimme kirjoittaa oman toimintomme. Todella outoa, mutta OK.
Varsinainen käyttötapaus koskee ei-React-kirjastoja, kuten Preact. Opin tämän tarkastelemalla Jason Millerin esimerkkejä:
Vue voidaan tehdä myös tällä tavalla. Huomaa, että sekä Vue että Preact toimittavat tämän erityisen h
toiminnon, joka on suunniteltu tätä varten:
Valeri Karpovilla on mielenkiintoisia käyttötapauksia myös blogikirjoituksessaan, "Yleiskatsaus JSX: hen, jossa on 3 reagoimatonta esimerkkiä".