Jeg burde sannsynligvis ha lært dette for lenge siden, men akk, her er vi. Det viser seg at du kan fortelle hvilken funksjon du vil at JSX skal bruke. Jepp, JSX har egentlig bare en primær transformasjon som den gjør. Det gjør vinkelparenteser i JavaScript til en funksjonsanrop. Så hvis du skriver en linje som dette i JavaScript:
Hello
Etter behandling (sannsynligvis med Babel og JSX-plugin) får du som standard:
React.createElement("div", ( class: "big" ), "Hello");
Men hvis du inkluderer en direktivkommentar som forteller JSX at du vil bruke din egen funksjon, kan du endre utgangen:
/* @jsx myFunction */ Hello
Blir til:
/* @jsx myFunction */ myFunction("div", ( class: "big" ), "Hello");
Det betyr at vi kan skrive vår egen funksjon. Litt rart, men OK.
Den faktiske brukssaken er for biblioteker som ikke er React, som Preact. Jeg lærte dette av å se på Jason Millers eksempler:
Vue kan også gjøres på denne måten. Merk at både Vue og Preact sender denne spesielle h
funksjonen som er designet for dette:
Valeri Karpov har også noen interessante bruksområder på blogginnlegget sitt, "En oversikt over JSX med 3 ikke-reagerende eksempler".