Thoughts on Javascript Frameworks

by Web Master 14. October 2019 03:39

In a previous post, I shared some research on various Javascript frameworks. The frameworks have matured and there are three that standout in popularity. These are Angular.js, React.js and Vue.js. Below I will give my impressions of each of these frameworks.


Angular.js is a full featured framework with support across a variety of platforms. I code using Microsoft .NET on the backend and Visual Studio is now shipped with templates to set up an Angular SPA (Single Page Application).

Code in Angular is developed in Typescript modules and components which are converted ultimately into Javascript. HTML markup is not directly added to the DOM, but is imported/defined in the Typescript file. The HTML markup is modified to implement loops, model insertions, conditional sections, etc. 

Support for services, dependency injection and routing.

Works with other libraries, like RxJS (Observables). Use of a shadow DOM limits use of libraries like jQuery.

My initial impression is that it is a robust framework for an SPA. It appears to be awkward or an afterthought to setup for multiple pages as delivered by a typical .NET MVC application. Lazy loading of pages and controls is possible, but again appears to be an awkward process, though, to be fair, I'll need to code more extensive examples to test this. It seems to be heavy on the library size and the site can be slow to load if everything is loaded at the outset.



React is described as a JavaScript library for building user interfaces. Like Angular, React defines the HTML markup within the component code. This is simplified by developing using JSX, but can be developed using vanilla JavaScript. The components can be rendered to multiple DOM nodes. Makes use of JavaScript classes. Often paired with Redux for state management.

Hooks all state to be managed without defining a class.

React appears to be more extensible to multiple page apps than Angular. This would make it more suited for use in a multiple page setup and seems more efficient for initial load times. Library size is also smaller than Angular. I'm still not sold on the shadow DOM definitions used by React (or Angular). Both React and Angular make the DOM definition easier with the use of JSX (React) and directly importing html documents for Angular using Typescript. This seems to limit use of outside libraries not targeted to the framework, such as JQuery or Bootstrap, to connect to the DOM. It is possible utilizing events in the framework to access the final DOM, but this seems like a kludge. I prefer direct use of the template tag to define document fragments.


Vue is described as The Progressive JavaScript Framework. Vue is designed to be incrementally adoptable. Focus is on the view layer only (as opposed to model and controller layers). Vue uses "Mustache" syntax, {{}}, to declaratively render data to the DOM. Files appear to be standard HTML and JavaScript files. Components can be defined and inserted into the DOM using tags with component name.

 Vue comparison to other frameworks can be found here







HTML | Javascript | Programming