5 ms·
Remix (which uses React as the UI library) is server side rendered
by bern4444 5y ago
Remix (which uses React as the UI library) is server side rendered
- tshaddox 5y agoTrue, but it still needs to download a big chunk of JS to have client-side routing.
- bern4444 5y agoYes, though I wouldn't call it a 'big chunk'. The whole page was 500KB and it seems the Remix library code is a small piece of that (measuring in the 10s of KB).
- tshaddox 5y agoYeah, I didn't mean it was necessarily too big. I just meant that, due to the architecture of an app where React controls all the client-side routing and interactivity, you need a significant about of JS just to bootstrap the app even if you've only got a very small amount of client interactivity.
- bern4444 5y agoI see and that's accurate though this is where Remix really improves on React. If you disable JS on the client and load a Remix app, the app will still work (though not as fully). You'll still be able to navigate links, load data etc. That's not true of most other apps built in just React that do all their data fetching client side and store all the data client side.
- tshaddox 5y ago> That's not true of most other apps built in just React that do all their data fetching client side and store all the data client side. I mean, it's true for any halfway competent implementation of a React app with React Router and SSR. I love Remix and I agree that it offers a great dev experience and will probably make developing React Router SSR apps much more accessible to a lot of new devs. But this particular aspect (SSR with nested routes that each have their own data loader function, and links that are actual <a href="" /> links) is, like, the bare minimum functionality you'd have in an SSR React app 5 years ago. I always feel like the Remix team is massively underselling itself when they focus so much on "we have SSR with nested routes!" instead of focusing on the real innovations that Remix brings to the table.