It's optional, and also not optional. Nobody is using React without JSX in practice, because it's ugly and verbose.
Hater-or-lover of JSX, it is definitely an intuitive way to think about HTML in the context of JS.
I prefer the vue model that's a bit closer to the metal, though, if only because of quirks like className
Mithril has "class" instead of "className"; that irks me too.