I need to be building apps at a rapid pace. Apps that have a 99% chance of needing to be torn down and rewritten from scratch anyway. Their average lifetime is probably around a month or two.
I’ve been using Blaze for a while now, but React is super attractive because of how it has a very clean separation of concerns with the component model.
With Blaze, things can become quite a mess, especially when I’m trying to hack things together quickly.
Given my needs, what do you think? Should I still go with React, or maybe I am just better off with Blaze?
Or, another way to phrase the question:
Do you think React can allow me to prototype and hack things together as fast as Blaze can? Or will React’s structure make it hard for me to prototype at the same speed?"
For most people Blaze is going to be faster. Especially since these apps would not need to be maintained in the future (Blaze tends to be easier to make a mess when in a hurry).
If you’re going to heavily use jQuery and CSS frameworks like Bootstrap then Blaze will play nicer with those. You also don’t have to decompose existing HTML into chunks with Blaze and it’s easier to have a 500 line HTML file with Blaze.
If you have a large collection of React components, it could tip the scales in the other direction.
At the end of the day I would say it depends on what’s more familiar. For me I could prob. build it faster in React because it’s 2nd nature at this point. For most Blaze is likely faster due to it being so similar to raw HTML.
I also have file generators to spit out boilerplate for components (with sass and tests), flux actions and stores, etc… A large collection of tab triggers setup help you scaffold out remaining bits of the app (imports, inline styles, classnames, etc…)
Events, helper functions and html markup all in one page and in one createClass(). You dont have to keep calling Template.sometemplate.events/helpers/onCreated etc…
managing states for a component is much cleaner and easier, no need to define different reactiveVar for every state you need to have (and have to define and return them in a helper, just use {this.state.*} in react ).
passing data down to child is annoying to do blaze.
At this point i feel like unless you are already working on a blaze app, and if you are serious about building nice modular apps, you should go for React imo. You can be modular in Blaze ofc, but it is not enforce and you can easily get lazy and code in spaghetti. And React is overall more succinct.
Starting with only tutorial knowledge of React so far (both the Meteor one as well as the official one), how long do you think it would take to have it feel “2nd nature”? I know that’s a bit of a difficult question to answer since it’s highly subjective.
If it’s a weekend project, Blaze is your best bet. It takes about half as much code to get something to render the way you want it to and like @SkinnyGeek1010 says, most people are familiar with HTML, so it takes less time to learn.
no i still use scss/css files, I put them as the same name as the components and right next to the jsx file, you can do this in meteor because meteor finds them all in the directory and combines them into one file anyway.