# 199: Messing JSX: n kanssa CSS-temppuja

Anonim

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 htoiminnon, joka on suunniteltu tätä varten:

Valeri Karpovilla on mielenkiintoisia käyttötapauksia myös blogikirjoituksessaan, "Yleiskatsaus JSX: hen, jossa on 3 reagoimatonta esimerkkiä".