No thanks I'll stick with plain html and jquery for the frontend of my small projects. Plain javascript works perfectly fine as long as you namespace your functions and separate them into different files. All these frameworks end up creating much more problems than they solve.
There are trade-offs. In very broad terms, single-page-apps are better for something that behaves more like an application (has a lot of user interaction or real-time behavior) than something that behaves more like a website (a page is loaded and the user views that now-static page for a period of time).
I try to fit the more traditional paradigm when I'm allowed to architect an app myself. I like rendering a page on the backend.
> As someone who has worked on a truly large React project, I can assure you this is not true.
there's no such things as the best approach for all needs. React brings you load of advantage but it assumes stuff you might not be ok with:
- spend time maintaining your project over time fixing stuff on version change that won't bring any direct value to your project
- you're ok with the licence and with the company maintaining it.
- hard to debug stack trace
- ship code that you have no control over, increasing the payload size (at least for small to medium size projects)
> I cannot imagine the shitshow that project would be using jQuery to track the state.
First nobody force you to use jquery. Manipulating the Dom isn't what it was when people had to maintain stuff on ie6. Dealing with the Dom directly isn't a "shit show" anymore and if you understand the concept of redux you can use those general concept and apply it in your project to manage the state. Plain Js simply assume the Dom isn't a magical piece of software, it just has prototype and stuff people usually don't like around here but hey, if you're coding stuff for the web, it's better to know how to deal with it than denying it
Es6 brings lot of great features you can use today, you don't need react for that
React is smaller than JQ and can go down to nothing with aliasing to react-lite, which strips off proptypes and other things.
React and Redux is the easiest debugging has ever been. While its true that stateless crashing components can cause some headaches (will be addressed in Fiber), inspecting state and flow of actions, how something rendered or changed and why --- haven't had such a experience before with no other tool or language.
Even for small projects libraries such as Vue or React are very useful.
Of course it feels easier to stick with what you know, but managing the DOM with data is so much easier than using jQuery + Handlebars.
Seriously, spend some time learning Vue. You won't regret it.
It has to be said that you don't need any building process (Webpack, gulp, etc) to use Vue. You can simply write your templates in your index.html and import using <script>.
That's what I thought until I decided to use Vue for one of my smallish projects and subsequently realized the cognitive benefits are enormous. Now I'll only revert to plain old JS for VERY small projects where the mild overhead of a framework really doesn't make sense.