Vue.js vs react

Hello guys! I had just made an app using vue.js and i found it very easy to learn. Its like a combination of angular and react. Its really cool. You don’t need to install a lot of modules to start making apps with it. Just add the https://unpkg.com/vue/dist/vue.js in script src then your good to go. The documentation is great too. What do you think guys about this library? I think it got the potential to dethrone react. Just my opinion.

1 Like

I think Vue.js is a very competitive alternative to react in many ways it combines in one small performant package what many react packages strive to do. However, react is under its own transformation with react fiber and actually many libraries, frameworks and languages are competing heavily for the frontend. If you thought JS fatigue was bad now, you haven’t seen anything yet, I believe 2017 is ripe for disruption because there seems to be growing pains with many legacy technologies including REST going to graphql or falcor and frontend trending towards more strongly typed, functional and reactive programming.

3 Likes

@siliconmagi What is react fiber? What the difference with react and react fiber? is it a differrent framework or just an upgrade?

React fiber is the next version of react

1 Like

It’s like angularjs to angular 2. Its a rewrite and new syntax but i hope it doesn’t get more complicated. What i like in vue.js is they value simplicity and flexibility as an important feature. Simple yet powerful.

I think this is a sign of a healthy and vibrant economy that there is so much activity in web development. It is good for beginners too because it levels the playing field from those who are not vigilant. Ultimately, no one has to even pay attention to all this activity, it is only relevant if you want to compare and contrast how to do things better. The good news is that all this activity is an effort to make development simpler–if you consider how many languages now transpile to JS, like Elm, Typescript, Clojurescript, Purescript, Coffeescript it is all an effort to write one language and transpile into others.

2 Likes

I’ve been working on a team building a greenfield SPA with Vue.js for nearly 4 months now. I originally learned React on my own during my self-study period, then started learning Vue when I got a signal that I would get an offer for my current, first developer job. I’m in China, where Vue is definitely one of the top, if not the hottest FE framework to use, so I feel okay about switching.

I had mixed feelings at first learning Vue after React. React felt cooler and more “programmery” because of jsx and render function, and Vue actually felt too easy (like I didn’t wasn’t getting programmer points because the v-directives solve so many common issues). While I felt less cool at first, I’ve come to LOVE single-file vue components… At this point, thinking of editing the CSS separately from the component code seems incredibly painful. Hard-coding the template v- directives and string interpolation {{}} felt inelegant at first, but now I feel they give me a lot more flexibility and clarity being able to separate the programmatic (JS) parts of a component from the structure (HTML) part. In short, I love working with Vue and being able to see components as mini-webpages (“HTML”, scoped CSS, and JS all together)–keeps everything much more contained for mental clarity. Also great being able to more easily side-by-side compare components in their entirety (I usually keep 3 code sections open in VS Code), so I can review how something was done in a similar situation elsewhere.

I would also say the the Vue dev tools are fantastic for seeing the all the data, props, and computed values for any component and for tracking store updates (and changing state object) and event emits.

My only hang-up with Vue is I feel there is less clarity about good design for state management when compared to Redux. The Redux creators are clear that while you can hook up every component to the store, it’s not good practice, suggesting instead you have “smart” containers and “dumb” presentational components. In Vuex, every component directly accesses the store data it needs and dispatching updates as needed. This does not seem to negatively influence the dev tool experience, but sometimes I feel like, along with emits/custom events, there are lots of tools but no prescribed best practice for using them all. Working on a SPA with dozens of components and increasing complexity, I find myself sticking to props/emits at first for parent-child communication, but a new design leads to re-doing the part of the app introducing levels of grandparents, in which communication goes up and down several levels. At this point it makes more sense to introduce Vuex. There’s no problem here, really, just sometimes it’s not always clear which approach is best in certain situations as there are a lot more ways to do things in Vue.

4 Likes