Ask HN: How do you use React as a library in 2024?
Hi all, With most of the current trend being to use React as a framework (e.g. NextJS), is there anyone here who still uses React as a library? If so, how is your setup?
I'm asking this is because I want to go back to MVC, but I don't want to miss out on the nice libraries out there built for React. Hence I want to combine MVC + React as a library. Can you clarify some terms here? - What do you mean by "React as a library"? Using it as a pure SPA with a bundler like Vite? Using it as a plain `<script>` tag? - What do you mean by "go back to MVC"? What does "MVC" mean specifically in this case? - Using it as a plain `<script>` tag? Yes. - What do you mean by "go back to MVC"? What does "MVC" mean specifically in this case? MVC as in Model-View-Controller. To give more context, I'm prototyping a lot, and having to create endpoints for every single APIs is quite a chore. Also I want to avoid the overhead of having to run separate server just to host the frontend (e.g. NextJS) I know what "MVC" _stands_ for, but I'm asking what _context_ you mean that in. Are you talking about how to define your server-side data models and endpoints? How you're organizing client-side fetching and caching? Normally "MVC" as a concept doesn't get used in the React ecosystem (the way it did with Backbone.js). FWIW it's certainly _possible_ to use React as a script tag, but it's extremely rare. It's normally expected that the frontend _is_ actually bundled and compiled, whether it be using a pure-SPA build tool like Vite, or one of the full server-side frameworks like Next or Remix. Note that the SPA build output is just a set of static HTML/JS/CSS files, which do not require a separate Node server process for hosting - they can be served by any HTTP server. My own advice would be to use Vite and build as an SPA. _If_ you absolutely want to use React as _just_ a `<script>` tag with no build step, I'd recommend also using https://github.com/developit/htm to at least give you JSX-like syntax for writing your components.