Going from HTML to JSX
One barrier for a developer adopting React, especially if they are used to working with other web technologies, is that HTML isn't imported into the project anymore. There's not a file with a .html
extension, except the entry index.html
file, which most of the time only has one line of HTML inside, like so:
<div id="root">loading...</div>
But that's it. If there was a project manager that liked to review HTML or even work on it, they can't do that anymore. This missing HTML file could be one of the reasons why teams are hesitant to adopt React.
However, HTML has a similar problem to CSS. They don't have scopes that we have in programming languages. Even worse, a piece of HTML, once written, is almost turned into DOM elements instantly. So, a component-based system has to come up with a way to add a layer in between.
How did React solve this problem? It chose to take the HTML in – no surprise. But...