My first question would be: are you sure you want to rewrite it? Think about that long and hard. If you have all of this time into a huge app, why do you want to rewrite it? The great thing is that your answer to that question may help you answer the question of which framework to choose in doing so (if you decide you need/want to).
For example, if you’re basing it solely on popularity, you may have already picked the most popular.
That said, assuming you want to continue, let’s rapid-fire some of your questions:
- “if everything has to be a component that means all of my pages have to become components too, including the massive 1500 HTML row pages, which presumably I would have to re-write as JSX?”
That is correct. Unless you just wanted to inject some massive, static HTML blob. In which case, you could import that HTML and inject it (even using React’s own dangerouslySetInnerHtml).
But the bigger point is that once you start breaking things into components, particularly reusable ones, these “massive” pages become much more granular and manageable. You could even have a “pages” directory that contains page-level components, which then bring in other, more granular components to build them.
- “What if I need to generate the HTML template for a page using a server side language (e.g. what if I want asp.net to generate the template in the users language before the front-end takes over? This is fine in Angular).”
You can render React apps server side (“universal” or “amorphous”), but the way you’ve described it isn’t really how React works, at least as I understand it. Or said another way, React intends to do the rendering for you, so if you’re already doing that on the server, maybe you don’t need React? How do you draw the lines for when you need it? If these aren’t just big static blobs (think “About Page” type stuff), why split the logic for rendering that between the server and the JS? Seems like it would get really complicated really quickly.
- “So, How do people work with large amounts of HTML in JSX? Without any of the benefits of HTML editors like syntax highlighting etc. Is this even practical?”
Many (maybe even most?) code editors do have syntax highlighting for JSX.
I would encourage you to go try to mess with React and JSX for a small project. Go build a to-do app or something. It took me about 4 hours to go from hating the idea of JSX to basically being unable to turn back from it now. It’s revolutionary (especially, in my opinion, when compared with something like Vue’s templating solution).