I’m the founder writing code (but not the only technical person) for my three person startup. In October I started migrating our MVP from server side templates to Vue, given we had direction and traction on a product line that justified the time investment. It’s turned out to be a great decision (although likely one that could have been made with react as the choice as well).<p>My “success story” is how Vue helped me to massively improve our user experience in low bandwidth or high latency environments. Our startup is trying to reinvent the ways that companies approach their review process, and one of the things we do is run a workshop on delivering actionable feedback during the review cycle. We have users log into our app during the workshop, and this often happens in conference rooms over congested WiFi. Our MVP used turbolinks, so it felt generally “snappy” during normal use, but could feel sluggish if moderate latency was introduced (such as a congested router).<p>Since I completed the rewrite to Vue (which took only about two weeks because of how simple it was to pick up, even for a non frontend person like myself), we’ve had multiple launches that both would have likely bombed had we not done the work to move to something less dependent on a tradition client -> server -> client response cycle to render the next “page”.<p>Either way, I’ve become an advocate for vue. I love single file components, love the documentation, and am very happy with the community libraries. All in all, I’m very bullish for Vue in 2018 as a happy new users.
Having used both React (with Typescript and Redux) and the latest Vue (with es6 and Vuex) I prefer React, and I don't even use React Native.<p>Vue is better for onboarding people more in tune with "classic" html + js development; and that's where the advantages end as far as I'm concerned. This might be a big win for some people.<p>The way I reason about it is that React is simple, Vue is easy.
When you take into account Vue's templating language, React's api is small in comparison.
A beginner won't know how to do some common use cases reading React's docs, when Vue might have a something built-in in its templating language (e.g. slots, or the component tag for dynamic components).<p>Slightly annoyed with Vuex too because of its slightly leaky abstraction.
You have to remember to setup the properties you mutate so the reactivity will detect a change; and also remember not use array indexes arrays cause it can't detect changes otherwise. The array index thing will be fixed in the next version when they drop support for some older IE.
Using Typescript would probably help a bit here, although Typescript being useless for checking Vue templates really feels like a huge chunk of its value is wasted.<p>Typescript is not currently available in the official blessed boilerplate which greatly affects its uptake in the Vue community.<p>Anyway, if you already know React, there is zero advantage in investing time in Vue.
I really don't get the love around vue... I always read the glowing sentiment and go, "Ok, I'm missing something, let me go back to the vue.js docs and see what's good"<p>Things that are a deal breaker for me:<p>Template language... You can call it 'separation of concerns' all you want, but just let me generate templates using the language I already know, JSX is great<p>State management... I cut my teeth with Ember professionally for a few years, and really loved it up until I built a data intensive app. Having state spread across different controllers is great when you have many different routes and pages, but if one page turns in to a photoshop like app, controllers make a terrible state management tool. It doesn't seem overly complicated to me to use redux along with react-redux's connect function to connect regular functions returning JSX to your state object. Looking at Vue.js, it seems like I need to learn Ember-lite + Angular (custom directives).
I think both of them are awesome and have great communities. Especially seeing as webpack has stabilized.<p>If you're a startup, it's tempting for many founders to go in headfirst with a Vue or React. In my opinion, it's rarely necessary, and in the end a lot of the stuff has to be thrown out if underlying foundations change. I see it as web development's version of premature optimization.<p>On the other hand, when I kept all my work in django templates, erb, blade, etc. and just script JS by hand, there's less of a penalty when the data flow changes. When I was using a JS framework, the refactoring was so painful I seriously considered throwing the whole thing out and starting from scratch. Heh, I'd have been better off not buying in so early on.<p>As a stop-gap, I'm using pjax. (<a href="https://github.com/defunkt/jquery-pjax" rel="nofollow">https://github.com/defunkt/jquery-pjax</a>)<p>My plan is after stuff is solid and in production and the product/service/business is moving forward, taking an incremental approach to moving to vue/react/etc.<p>P.S. kudos to react for removing the patent stuff in v16.
I write ClojureScript<p>A good indicator of if a technology is going to explode, is if emerging language users are excited about it, as good ideas tend to trickle down from the more advanced/research-y ecosystems which aren't as constrained by legacy. So for example React was built by a user of OCaml.<p>ClojureScript early adopted React.js through the Om project in 2013 and there is a growing number of competing React adapters, Clojure rewrites etc. I first saw virtual-dom in ClojureScript in 2012 (eight months before React came out).<p>Number of ClojureScript projects with traction that are based on vue? Zero, that I am aware of.
What I find most interesting in these results is the satisfaction percentage i.e. (Used it before and would use again) / (Used it before and would use again + Used before and would not use again).<p>-
In 2016:<p>React - 91% satisfaction<p>Vue - 91% satisfaction<p>Angular 2 - 65% satisfaction<p>No framework - 65% satisfaction<p>Ember - 50% satisfaction<p>Angular - 40% satisfaction<p>Backbone - 31% satisfaction<p>-
In 2017:<p>React - 93% satisfaction<p>Vue - 91% satisfaction<p>Angular 2 - 66% satisfaction<p>No framework - 65% satisfaction<p>Aurelia - 56% satisfaction<p>Polymer - 53% satisfaction<p>Ember - 41% satisfaction<p>Angular - 33% satisfaction<p>Backbone - 23% satisfaction<p>It's especially interesting that many of the frameworks have a lower satisfaction percentage than using "no framework". Of course this could be largely attributed to who is using no framework. I have encountered a minority of developers (usually backend devs) who think front-end frameworks are nonsense and prefer to just write a bunch of jQuery. Also, if you are working on Wordpress sites, then frameworks are often not necessary.<p>I've written production code in some of these frameworks (Backbone, Angular 1, Ember, and React) and I would have to say these results are more or less consistent with my experience. I love React and don't feel the need to try anything else.
OP predicts with absolute certainty vue "will become dominant" next year many times.<p>Also OP has skin in the game to justify to his team that vue was the correct choice.<p>Nice as an opinion piece but too many red flags to be considered fair and unbiased.
The simple answer is in reading the chart. Look at "I've USED it before, and WOULD use it again".<p>React isn't just popular. It also consistently provides good developer experience. You have to compete not only against React's popularity, but also against <i>that</i>.<p>React:<p>- Used it, would use again: 14k<p>- Used it, would <i>not</i> use it again: 1k (7%)<p>Vue:<p>- Used it, would use again: 4.6k<p>- Used it, would <i>not</i> use it again: 454 (9.8%)<p>That ~3% difference in people who tried it, and didn't like it could be the difference between make it and break it when coming up against React. "I've heard about it, and I'm <i>not</i> interested" is another important metric.<p>---<p>Personal take:<p>Things I personally don't like in Vue:<p>- String-based programming so prevalent these days.<p>JSX is a thin layer on top of regular Javascript/Typescript. Where as Vue is often this:<p><pre><code> <li v-for="todo in todos">
</code></pre>
Really?<p>- It breaks Javascript and how it works:<p><pre><code> var app5 = new Vue({
el: '#app-5',
data: {
message: 'Hello Vue.js!'
},
methods: {
reverseMessage: function () {
this.message = this.message.split('').reverse().join('')
}
}
})
</code></pre>
There's no chance in hell that `this.message` exists on app5. And yet, there it is. And then data becomes $data and a lot of other weird stuff such as computed properties being also hoisted up to the top-level object etc. etc. etc.
Do Vue templates play nicely with Typescript? That's something I love about JSX -- "it's just JavaScript" is an incredibly sublime feature. I know you can use JSX with Vue but I'm skeptical since it's a first-order feature with React.
Good assessment. To summarize the argument, Vue.js is just as good and some would argue better than React for web development, but the React ecosystem really puts it over the top, especially React Native.
One thing I'm noticing about SPAs is that they're often slower to load, but the slowness and loading animations gives me a higher perception of the quality of the application.<p>The same application loading and doing things instantly as server-side templates feels comparatively cheap and un-modern.<p>What is wrong with me?
Coming from Angular, I'm biased towards entities declared in the form of a class. It's a style that is easy to manage and familiar to most programmers.<p>Vue currently seems to be a mix bag of styles. My take away from the little that I dabbled:
- You need the vue-class-component dependency in order to declare class based components, otherwise, you're stuck with the awkward object literal notation
- For state management using Vuex. You are are limited to the object literal style to declare your state store. Very awkward to work with.<p>Yes to get some data bound to a template and rendered out, Vue takes very little amount of code. However that is not a meaningful benefit to me. I feel Angular's complete framework and class based convention is much more suitable for a team environment.
I personally prefer Vue because it is approachable and easy to adopt. I believe that if Vue embraces PWAs in a pragmatic way that performs and is accessible, it will be top for a while.<p>At the moment, PWA is not a viable replacement for some cases, but it’s about to explode to everyone.
I see a lot of commits from the Vue team into the core repo that are meant to support use in native.<p>Likely, we can expect something comprehensive for native this year.<p>I also believe it's a smart strategy to avoid Facebook codebases because they are all meant to somehow benefit FB in some (usually dubious) way.<p>Also the Vue approach is 1000% cleaner in practice than React, just doesn't have the bandwagon effect going for it
I have spent quite a bit time into learning Angular (4/5). I am new to front-end dev, and found that the structured approach of Angular more appealing than React.<p>Should I continue with Angular or move on to React?<p>My goal is to create a data-driven website, with expressJS & PostgreSQL backend. Not very complicated, but not simple either.
I like the simplicity of React though I don't mind the Vue templating language that much either.
Sometimes I actually prefer Vue templates because with React you often see components where it's not so clear how the rendered output will look like.
I evaluated both earlier in the year, and to me (spending the last 30 years developing software), Vue just seemed to fit my mindset better. I just couldn't "get" React, no matter how many times I tried.<p>I guess it is just how my "programming mind" thinks about problems. I am sure developers who approach problems differently may enjoy React more, but for me, I guess I am a lot more old fashioned and 'structured' in the way I see things.
Any suggestion for the below use case? Whether to use Vue or React?<p>- I develop APIs and plan to hire freelancers to do the web/mobile clients (so, higher availability of skills in the market is important to me)<p>- I have a web designer developing the UI with just plain html/css. And this is going thru multiple iterations and the web-designer is able to make all the changes (cheaper because this is just a web-designer, not a programmer).<p>- Once, the UI is finalized (and fully designed with html/css), I plan to hire a Javascript programmer to do the SPA front-end (so, being able to use existing plain html/css templates with minimal change is a big benefit).<p>- I do not plan to create native mobile client, just a hybrid app based on webkit. If the web app was developed with React, then will it benefit the mobile clients to be developed with React Native? or, does it matter at all? If Vue.js was used for SPA webapp, what do the Vue programmers use for mobile client? I assume React guys might naturally use React Native.
Isn't it funny how you can read different things into the same data?<p>> So, 1 year passed, and Vue.js is clearly the leader in "would like to learn" by a huge margin<p>For me, the main takeaway of the newer chart is "React is the clear winner in the 'Happy Customer' category".<p>For the record, I never used any of the frameworks, though I think I will, some day.
The reason I am not even remotely considering React is the Facebook itself and what this company represents - exploiting people's minds and emotions to fulfill their business plan. I can't help it but if I would use react, I would not be able to get this feeling out of my mind, so if there is viable alternative - vue.js, I am definitely going that way.<p>Something similar like using cosmetics that have been tested on animals, if I can choose, I choose something else.<p>I know this should be more of a technical discussion, just I can't help but think of this aspect when it comes to React.
Which is faster? Vue; Which is more modular? Vue; Which is simpler to grasp and reason about? Vue; Build in CSS support? Vue;<p>P.S. Vue contains React. You could in principle write your components React style.
vuejs does gain strong interests from large companies such as alibaba,baidu and tencent, the three are called BATs in China similar(or larger) to amazon, google and facebook in US.<p>One of the BAT should acquire Vue.js to make it a strong player for the long run, that may happen in 2018 I hope.<p>Both laravel and vue.js (vue.js is the default frontend choice and embedded in Laravel) are from one core developer, I liked them, but am concerned about the bus factor. I eventually choose nodejs+react because of that.
I'm afraid React is eventually turning into Angular. At some point, I felt that Angular is somebody's PhD work exploring arcane computer science concepts, not a piece of software for practical use.<p>React gets closer to that with each year.
Why in earth people would like to to use anything from facebook in they business ?
Why do you trust they licensing ?<p>I would choose riotjs or vuejs anyday before any facebook's code in my apps.