Firstly I don’t think the problem from the early days of the web was as simple as the view and business logic existing in the same file. I think it was more that there was no clear demarcation between them such that they were entangled with each other in a way that was difficult to parse and difficult to work with.
Secondly, React (and Yew) provides a framework that clearly separates the view, state, and business logic even though they often exist in the same file. You could put them in different files if you wanted to, but (ironically?) that would make your code much more difficult to read. Both React and Yew focus heavily on making sure state updates are managed correctly, which is arguably the more important problem to solve.
Thirdly, I think it is a MYTH that MVC frameworks separate business logic from the presentation layer. Any time your view template contains an ‘if’ attribute, or some kind of flow-control (‘for’ / ‘while’) that’s business logic. And it’s now spread across (and interspersed with) multiple files, making it more difficult to follow. Also you’re adding a templating language into the mix (more to learn / master) — so the business logic is spread across multiple languages as well.
If anything, the React model provides (in my opinion) better separation of business logic from the view (they’re typically in different functions, or should be), while keeping them near each other making it easier to read.