I was going through vue.js documentation and other resources on the internet. I have little knowledge on react.js. So I was searching what is the differences or similarities between vue and react js. Then I got below answer from this question in Quora (opens new window)


Vue is Simple and Beautiful. The rest already answered by Evan You the creator of Vue

As the user of Vue I focus more on it's simplicity. For me Vue is a combination of Angular and React. Programming in Angular is really different compare to other frameworks. Angular is based on data driven. For instance to hide an element in other frameworks you have to get the reference to the element and then you set it's css style display to 'none'. While on Angular you just need to use the ngHide directive (Angular 1) and you pass in a true value and it will hide your element. If you passed a variable then when you change that variable value to true or false then the element will automatically shown or hidden. Very convenient! This feature is called directive in Angular and Vue has this directive feature which behave the same as the one on Angular. So Vue has Angular goodness built in it.

What I really like from React is the concept of Props, the property of the component. React also add data types for the Props. That means you can add attributes to your component and React will automatically validate the attribute values. Vue also has this Props concept, the data types and the validation of the Props value. With this Props concept, adding attributes to components are very easy. That means creating a new component is very easy in Vue. But in Angular it was hard. You have to learn many weird concepts and weird behaviors.


With Vue I've been able to create a declarative programming model on top of Famous Engine. This declarative programming model will make it easier to define the structure of Famous objects and also creating user interface components based on Famous also became easier. This is the repo of Famous-Vue: irwansyahwii/Famous-Vue (opens new window). You can see on the repo that there are a lot of .vue files. That is a another great feature of Vue but more to the tooling side. Vue has provided toolings based on Webpack and Browserify. I prefer the Browserify one because it is simpler to setup and modified. This .vue file has the same concept as .jsx file on React. But .vue file is better and more beautiful to see because it can contains a template for the html tags declaration. A script for doing imperative tasks using JavaScript, CoffeeScript, etc. And styling using css, less, etc. This is why I consider Vue as a beutiful framework because the symmetry is very clear. One sweet thing of it is that you can choose to use Jade instead of HTML as the template language.


Vue also has big user base. It has a forum and a Gitter channel. The Gitter channel is very active with a lot of posts every day. But I prefer to dig the solution by myself by reading the documentation or searching on Google. That really helps in my learning of Vue.


You can also read this post (opens new window). It's also a good read.