Why we choose Vue.js over React for Vue Storefront

Piotr Karwatka
The Vue Storefront Journal
4 min readFeb 13, 2018

--

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.

Disclaimer

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.

Learning curve

React.js is just a javascript which means it leverages on all the basic concepts and advantages of JS itself. You just code the interface with some JSX injections. It’s more familiar for desktop/mobile app developers than for frontend devs came out from classical HTML+CSS.

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.

We like Vue.js to the point we’ve created our logo and project name including Vue references ;)

Popularity

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.

Google Trends; Blue — Vue.js; Red — React; Yellow — Angular

The ecosystem is growing rapidly with great events like Vuejs.amsterdam, Vue.js US and Vue.js EU engaging thousands of developers

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.

More info

The subject can be discussed for hours! Please just take a look at some reference materials on Vue.js

Vue Storefront

Vue Storefront is a standalone PWA storefront for your eCommerce, possible to connect with any eCommerce backend (eg. Magento, Pimcore, Prestashop or Shopware) through the API.

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: contributors@vuestorefront.io

Meet the core team at Vue.js Amsterdam!

--

--