Separating the HTML, JS, and CSS is an approach that works up to a certain size/complexity app. When I’m working on some functionality, I need to be able to understand the relevant parts of the HTML, JS, and CSS. With a smaller app, one person can more or less grok the code base well enough to find everything they need. With simpler apps, you might have fairly uniform or boring styling and not a ton of CSS rules. If I’m setting something up with Bootstrap and just getting it working, I can probably ignore CSS for a LONG time.
If you’re working on something larger and more complicated, you really want to have all of the HTML, JS, and CSS for a particular piece of functionality right in the same place so you don’t have to go searching for it. It’s how you survive in large/complex apps. You’ll think, “The margins in this box are too large” and you want to be able to fix that without trying to grok some massive set of CSS rules, and when you do get the CSS rules that you want, you want to know that they’ll be delivered to the client—something that is easy if you deliver all of your CSS rules to every client, but hard if you want to split your CSS.
I think the only real tragedy here is that too many people are copying “the way Facebook does it” without wondering if Facebook might have a completely different set of priorities than they do.
But yes – I do think React is a pretty good approach to UIs compared with many things I've used in the past. There are good and interesting discussions to be had about the different possible techniques that can be used; this isn't an entry into one of them.
If you mean this is better, I hardly agree with you:
https://twitter.com/thomasfuchs/status/810885087214637057?la...