blog

:)You have successfully subscribed! Thank you for subscribing to our newsletter!! Email has already been taken

back to blog

Dec 13 2018 | byAnton Shaleynikov

Infographic: React vs Angular vs Vue.js

While Angular can be used to build components, it also comes with other tools that can be used to build a complete web application. Thanks to Angular, developers can build single page applications. Unlike Angular, React is a JavaScript library, not a framework. React is used to build reusable UI elements. Vue is a framework similar to Angular. However, it doesn’t come with all of its functionalities making it lightweight. Vue can be used to build complete component driven applications.

Infographic: React vs Angular vs Vue

Installation

Angular

To install Angular do the following:

git clone https://github.com/angular/quickstart.git quickstart
cd quickstart
npm install
npm start

To install the Angular CLI (Command Line Interface) use the command below:

npm install -g @angular/cli

React

React can be installed using the NPM command below:

npm install react --save

To install the React CLI, you can use the Create-React-App as seen below:

npm install -g create-react-app

Vue

Vue can be installed using the NPM command below:

npm install vue

The Vue CLI can be installed with the command below:

npm install -g @vue/cli

Sample Code

Angular:

import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
const bootstrapPromise =  platformBrowserDynamic().bootstrapModule(AppModule);
// Logging bootstrap information
bootstrapPromise.then(success => console.log(`Bootstrap success`))
.catch(err => console.error(err));

Code snippet gotten from here.

React

import * as React from "react";
import { Component } from 'react';
import './App.css';
import * as logo from './logo.svg';
class App extends Component {
           render() {
            return (
            <div className="App">
                        <div className="App-header">
                       <img src={logo} className="App-logo" alt="logo" />
                      <h2>Welcome to React!</h2>
                      </div>
                      <p className="App-intro">
                     To get started, edit
                      <code>src/App.js</code>
                       and save to reload.
                      </p>
          </div>
          );
            }
}

export default App; 

Code snippet gotten from here.

Vue

new Vue({
el: '#editor',
data: {
input: '# hello'
  },
  computed: {
   compiledMarkdown: function () {
   return marked(this.input, { sanitize: true })
  }
},
  methods: {
  update: _.debounce(function (e) {
    this.input = e.target.value
   }, 300)
 }
})

Code snippet gotten from here

Google trends

Worldwide interest over time.

// <![CDATA[ trends.embed.renderExploreWidget("TIMESERIES", {"comparisonItem":[{"keyword":"/m/012l1vxv","geo":"","time":"today 12-m"},{"keyword":"/m/0j45p7w","geo":"","time":"today 12-m"},{"keyword":"/g/11c0vmgx5d","geo":"","time":"today 12-m"}],"category":0,"property":""}, {"exploreQuery":"q=%2Fm%2F012l1vxv,%2Fm%2F0j45p7w,%2Fg%2F11c0vmgx5d&date=today 12-m,today 12-m,today 12-m","guestPath":"https://trends.google.com:443/trends/embed/"}); // ]]>

Each framework and library has its own pros and cons. So the case is choosing the right software tool for a particular product.