Blog Article

Single-page application

Web browser JavaScript frameworks, such as AngularJS, Ember.js, Meteor.js, ExtJS and React have adopted SPA principles.

AngularJS is a fully client-side framework. AngularJS's templating is based on bidirectional UI data binding. Data-binding is an automatic way of updating the view whenever the model changes, as well as updating the model whenever the view changes. The HTML template is compiled in the browser. The compilation step creates pure HTML, which the browser re-renders into the live view. The step is repeated for subsequent page views. In traditional server-side HTML programming, concepts such as controller and model interact within a server process to produce new HTML views. In the AngularJS framework, the controller and model states are maintained within the client browser. Therefore, new pages are capable of being generated without any interaction with a server.

Ember.js is a client-side JavaScript web application framework based on the model-view-controller (MVC) software architectural pattern. It allows developers to create scalable single-page applications by incorporating common idioms and best practices into a framework that provides a rich object model, declarative two-way data binding, computed properties, automatically-updating templates powered by Handlebars.js, and a router for managing application state.

Meteor.js is a full-stack (client-server) JavaScript framework designed exclusively for SPAs. It features simpler data binding than Angular, Ember or ReactJS, and uses the Distributed Data Protocol and a publish–subscribe pattern to automatically propagate data changes to clients in real-time without requiring the developer to write any synchronization code. Full stack reactivity ensures that all layers, from the database to the templates, update themselves automatically when necessary. Ecosystem packages such as Server Side Rendering address the problem of Search Engine Optimization.

Aurelia is a JavaScript client framework for mobile, desktop and web. It is similar to AngularJS, but is newer, more standards-compliant, and utilizes a modular approach. Aurelia was written with next-generation ECMAScript.

Vue.js (commonly referred to as Vue; pronounced /vjuː/, like view) is an open-source progressive JavaScript framework for building user interfaces.

React (sometimes styled React.js or ReactJS) is a JavaScript library for building user interfaces. It is maintained by Facebook, Instagram and a community of individual developers and corporations. The biggest claimed advantage of React is accessibility - basically any developer familiar with HTML can create React applications. Another claimed advantage is the opportunity to create web and mobile applications using the same technology stack. Several companies use React with Redux library, which lets developers create complex, but scalable web applications.

Fulcro is a full-stack library that adopts data-driven principles from Netflix's Falcor, Facebook's Relay, and Om Next's adaptations of reactive, functional, data-driven software. It leverages React underneath for raw rendering, gaining all of the advantages of that platform, but provides a clear full-stack model similar to Redux, but using immutable data to gain the advantages of functional programming. It has a pluggable architecture that makes it possible to seamlessly integrate any back-end resources, and has the distinction of providing a support viewer technology that allows developers to debug against the real UI state history of an in-the-field client's session. Websockets are supported as an option and allow one to create the advanced behaviors of Meteor.js with very little code.