Ask HN: Best front-end framework to use with React to make a web app?
I've been looking at Meteor and Electron to build a node.js app. Are there any other options to consider? Which would you go with? Please support your decision with a few arguments such as one has more libraries, better structure, preference, etc
12 comments
[ 1.9 ms ] story [ 40.5 ms ] threadFacebook also came out with a storage interface and state management library that is used to manage unidirectional data with a backend called Flux https://facebook.github.io/flux/
And a lot of the cool kids these days are using a Flux-like state management system called Redux - http://rackt.org/redux/index.html which is roughly based on the immutable patterns from Haskell/Elm.
Here you can find the FullStack Redux Tutorial: http://goo.gl/QYLB3s
It is a great starting point if you want to learn more about Redux :)
I'm using a mix of ES6 and JSX with Babel.
My favorite aspect is that it seems like there is less mental overhead/stress - that makes coding easier and more enjoyable for me - but there's no way to quantify that other than I don't feel drained at the end of the week. It seems to me there is a lot less you have to keep in your head (state) once you "get it" vs. ng directives (state+behavior+scope) or 2-way backbone data binding (kitchen sink). Personally not a big fan of Webpack only because it doesn't have all the nice plugins and addons available for grunt/gulp.
The React developer add-on for chrome is pretty impressive, better than the ones for ng. When things go really bad (white page of death), it's much much faster to find and fix the issue than with other frameworks using the chrome extension. It provides better insight into what your code is doing/try to do.
The hardest part I found when starting React was deciding to Flux or not to Flux; and then which router to use. A couple hours to kicking around a few starter kits should be expected.
The problem detailed reared itself in my own efforts too, all the flux implementations promise elegance until a router comes along, which in many ways is another actor exerting control over what's on the user's screen.
You have to then make the choice on whether you want the router to handle what high level components are displayed, or if you want changes in the router to feed directly into changes in your state tree and then have it handled from there. That's where the complication comes in.