Why we choose Vue.js over React for Vue Storefront
As Vue Storefront is getting it’s momentum, first production grade deployments are live quite often I hear the questions: OK, so why the heck you’ve chosen Vue.js over React? So here’s the story.
This is just subjective list of the key reasons why we choose Vue for Vue Storefront — not a general comparison why one framework is better than the other. I think it’s not a case, not for us.
Our main goal was to create the elastic, easy to use eCommerce Framework for rapid development. Here’s why we choose Vue.js as a foundation for it.
And that’s nothing wrong with this approach. But when you take a look at the eCommerce talent’s pool — many developers coming from classical platforms (like Magento, Prestashop — even Shopify) — are looking for something more productive for them.
Here come’s Vue.js — on the crossing between Angular complexity and React simplicity. Another thing is that Vue.js has got one of the best doc library you can find.
We’ve observed (at Divante we do have roughly 15+ frontend devs) that the learning curve for React is much steeper. Vue.js is much more fun.
The templating systems along with the mixins gave us also a foundation for the overall framewok which is pretty elastic, easy understand and to extend.
Vue.js eco-system (Vuex, Nuxt.js ..) is pretty coherent. It’s fairly easy to choose the right solution for the problem at hand. It makes it more like Python/.NET than Java approach for developers (where you at first need to understand the standard, find 10 implementations and choose the right one :))
Architecture and performance
Vue.js uses the same Virtual DOM approach like React, the performance is pretty similar. Vuex implements much of the Redux state management concepts and with Nuxt.js you have full SSR support (SSR is supported natively as well).
SSR support was especially important for use because we wanted to be as SEO friendly as we can.
You can use all the modern tooling like Webpack, Babel (even JSX components can be used with Vue.js without hassle), Type Script support and much more.
Both framework are extremely popular — React having 88K stars on Github and Vue.js 83K :) The Google trends are showing that Vue.js ecosystem is growing even faster (probably because React is longer on the market and it’s user base is pretty much saturated).
We’ve passed thru the times when JS frameworks come and go; Vue.js is here for a while (from 2014) and is getting better each month.
PWA Studio and other bases on React
PWA is hot topic and few other projects aimed at creating the PWA for eCommerce — especially for Magento. Most of them choose to work with React; So .. we tried to build an alternative and focus on the second, most growing Framework with totally different architecture. We simply don’t want to compete with Magento itself (building the PWA Studio upon the react), but rather build something sustainable.
Talent pool for experienced React devs is limited. Because Vue.js is much easier to start working with, one can easily transfer the team from exsiting technology to Vue.js. We’ve seen guys without previous Vue.js experience, building complete e-shops on Vue Storefront in 2–3 weeks.
The subject can be discussed for hours! Please just take a look at some reference materials on Vue.js
- State of Vue.js — cool report by our friends from Monterail,
- Comparison to other frameworks — Vue.js official website
- React vs Vue — quick comparison
- Vue Storefront architecture and design goals — our very initial blogpost
Vue Storefront is and always will be in the open source. Anyone can use and support the project, we want it to be a tool for the improvement of the shopping experience. The project is in the production ready phase.
Public demo access is available on Github. If You like it don’t forget to give as a Github’s star ★:)
PS: You can meet the Core VS team on Vue.js Amsterdam — 15th and 16th Feb 2018. Contact us for a meeting: email@example.com