React.createClass versus extending HTMLElement


Reading the atom sources, I can’t figure when one is used instead of the other.
Can someone explain or point to the relevant documentation.
This may be a react question, but because it occurred to me when reading atom source,
I thought this forum may add information on atom specificities on the subject.
Thx in advance.