Is React now mandatory

I’ve been away for a while and today decided to launch the meteor create command.

I see the app’s structure has changed and did not find much info online. Is react now bundled with Meteor?

Can I create a new app with the old structure I was used to?

Thanks

Ok just found the command: meteor create simple-todos --blaze

Nevertheless, would you recommend diving into React?

3 Likes

This is such a broad question. It depends on your needs, the size of your application and skill set. Since you’ve been away for a while I’d recommend that you continue working with Blaze to get a feel for the matters and smoothly ease your way back in then later on you can switch/learn React if you wish to do so.

1 Like

React is GREAT! But then again, Blaze is still more than serviceable! :slight_smile: If you would like all of the power of React (speed, state management etc) with a syntax a little more like Blaze or Handlebars, you may want to check out Svelte! We moved to Svelte as our client-side framework (technically it’s a compiler) and never looked back!

I’ve been a promotor of Blaze for a long time and loved it. But to be honest, after I switched to React, I never looked back. It has a steeper learning curve. But once you get past that point, things are so much easier than with Blaze. I still maintain an old Blaze app, and it is not really comfortable. The separation between html and js - which I loved back in those days - is just standing in your way more often than it helps. I’ve heard a lot of good stuff about Svelte, but nowadays I really love doing all in JavaScript. Another pro argument for React is its wide adoption in the community. Although it still lacks some stuff (e.g. a solid and maintained auth UI), there is currently no UI stack that comes close to it, IMHO.

2 Likes

Ok let’s see:

Blaze: Have not used it in years. When I last did, I used it with manuel:viewmodel, wich was a real improvement, but since it’s not been updated since 2018 I am not sure If it’s even still working at all. I would not start a new project with blaze.

Vue: I switched form blaze with viewmodel to Vue late 2017 and really enjoyed it. It already had hmr back then, the vue ecosystem is fine and It allowed me to write Vue components with pug, cs and stylus (look mom, no brackets). Then after a break from meteor (I needed the money badly enough to agree to dabble in php, yuck). I wanted to get back to using Vue but it seems it was broken at the time and akryum was busy with other stuff. I have not checked it out in quite a while but from some recent posts somewhere it seems, there are still problems, but there are people striving to take over from akryum. Hope that goes well. Vue and Meteor was a real nice fit.

React: It really was an aquired taste for me. When I found that akryum:vue was troublesome at the time I switched to React. There are several reasons to use React: It’s supported by the core team, unlike Vue or Svelte you can rely on it still working when you do a meteor update (if it didn’t there would not be that meteor update). It got by far the largest ecosystem with lots of ready built stuff (like e.g. uniforms. Depending on what you want to build and what you are willing to code yourself from scratch the exosystem might be the most important factor. And for complex dynamically changing ui the jsx approach is really nice (as @waldgeist just mentioned). Also works out of the box with vanilla js, ts and cs.

Svelte: by far the easiest and most intuitive. Have not really done that much with it yet, so I don’t know what the ecosystem got to offer. The meteor packages available work fine, but don’t offer support for preprocessors yet (and I myself would not want to use vanilla js). The zodern:melte package got a really interesting approach to combine tracker reactivity with svelte reactivity.

So right now, I would stay with React. I really hope for Vue to become a reliable option again and svelte looks really interesting. Beyond that it’s a matter of what prebuild stuff you want to use and then it’s really a matter of taste.

1 Like