Best MV* frameworks of 2021

MV* frameworks (1 - 5)
AngularJSReactEmber JSBackbone JSCanJSRactive JSKnockout JSrAppid JSbatman jsSpine
Image
AngularJS
React
Ember JS
Backbone JS
CanJS
Ractive JS
Knockout JS
rAppid JS
batman js
Spine
Summary
Summary
  • General info (71)
  • Plugins (100)
  • Libraries & Packages (75)
  • Data binding (100)
  • Performance (95)
  • General info (42)
  • Plugins (23)
  • Libraries & Packages (75)
  • Data binding (100)
  • Performance (84)
  • General info (79)
  • Plugins (91)
  • Libraries & Packages (25)
  • Data binding (75)
  • Performance (95)
  • General info (66)
  • Plugins (94)
  • Libraries & Packages (100)
  • Data binding (50)
  • Performance (100)
  • General info (63)
  • Plugins (40)
  • Libraries & Packages (75)
  • Data binding (50)
  • Performance (68)
  • General info (27)
  • Plugins (23)
  • Libraries & Packages (100)
  • Data binding (75)
  • Performance (96)
  • General info (64)
  • Plugins (23)
  • Libraries & Packages (25)
  • Data binding (75)
  • Performance (46)
  • General info (70)
  • Plugins (23)
  • Libraries & Packages (50)
  • Data binding (75)
  • Performance (51)
  • General info (100)
  • Plugins (23)
  • Libraries & Packages (0)
  • Data binding (75)
  • Performance (47)
  • General info (78)
  • Plugins (23)
  • Libraries & Packages (75)
  • Data binding (50)
  • Performance (55)
General info
Automatic view filteringHas a mechanism to filter views based on scope variables (for example when searching) without the need to write much extra code.
Automatic view filteringHas a mechanism to filter views based on scope variables (for example when searching) without the need to write much extra code.
Templating engineTemplate engines allow for easy and flexible UI building.
Templating engineTemplate engines allow for easy and flexible UI building.
Extends HTMLSome people see this as an advantage as it eliminates the overhead from another template language.
Extends HTMLSome people see this as an advantage as it eliminates the overhead from another template language.
Integrates with other MV* FrameworksCan be used to replace a part of another framework without removing the remaining features.
Integrates with other MV* FrameworksCan be used to replace a part of another framework without removing the remaining features.
Published under MIT LicenseThe MIT License is a very permissive license which allows all uses, including business use, without warranty.
Published under MIT LicenseThe MIT License is a very permissive license which allows all uses, including business use, without warranty.
Total score for "General info"
Total score for "General info"
Plugins
Number of pluginsPlugins offer an easy way to extend the functionality or integrate with other services. A high number of plugins may indicate an active community of users. Only official plugins are taken into account.
Number of pluginsPlugins offer an easy way to extend the functionality or integrate with other services. A high number of plugins may indicate an active community of users. Only official plugins are taken into account.213
N.A.N.A.153
7
N.A.33
N.A.N.A.N.A.
Dedicated plugin sourceThis shows that the framework has a living ecosystem, large community support and allows for more flexibility and faster development.
Dedicated plugin sourceThis shows that the framework has a living ecosystem, large community support and allows for more flexibility and faster development.
Input validation pluginPlugin to help validate client input before it gets processed or sent to a server. While this does not replace server-side validation, it can vastly improve the user experience.
Input validation pluginPlugin to help validate client input before it gets processed or sent to a server. While this does not replace server-side validation, it can vastly improve the user experience.
Built-in RESTful sync abstraction for modelsIncludes utilities to keep models in sync with their server-side representation without the need of writing jQuery boilerplate ajax calls.
Built-in RESTful sync abstraction for modelsIncludes utilities to keep models in sync with their server-side representation without the need of writing jQuery boilerplate ajax calls.
Plugin to support animationHas a plugin which includes facilities to easily create view animations.
Plugin to support animationHas a plugin which includes facilities to easily create view animations.
Total score for "Plugins"
Total score for "Plugins"
Libraries & Packages
Compatibility with AMD libraries such as Require.jsAsynchronous Module Definition libraries allow for easy modular, clean programming. If a framework does not work well with such libraries, it might have some other means to modularize its components and resolve dependencies, like Dependency Injection.
Compatibility with AMD libraries such as Require.jsAsynchronous Module Definition libraries allow for easy modular, clean programming. If a framework does not work well with such libraries, it might have some other means to modularize its components and resolve dependencies, like Dependency Injection.
DOM manipulation library agnosticDoes not require or seriously encourage the use of a specific library (like jQuery, Zepto or MooTools) to handle DOM manipulation and can be used with one the developer prefers.
DOM manipulation library agnosticDoes not require or seriously encourage the use of a specific library (like jQuery, Zepto or MooTools) to handle DOM manipulation and can be used with one the developer prefers.
Bower dependency management supportBower is an easy-to-use, npm-like package manager for frontend apps.
Bower dependency management supportBower is an easy-to-use, npm-like package manager for frontend apps.
Official entry in the npm package managerThe node package manager can also be used for managing front end scripts.
Official entry in the npm package managerThe node package manager can also be used for managing front end scripts.
JQuery Lite includedUses jQuery Lite elements where DOM manipulation is necessary. This way, developers get jQuery’s comfortable helper functions without having to include the entire library. In many use cases, this eliminates the project’s dependency on jQuery.
JQuery Lite includedUses jQuery Lite elements where DOM manipulation is necessary. This way, developers get jQuery’s comfortable helper functions without having to include the entire library. In many use cases, this eliminates the project’s dependency on jQuery.
Total score for "Libraries & Packages"
Total score for "Libraries & Packages"
Data binding
One-way data bindingViews can be bound to update automatically when an observable object changes.
One-way data bindingViews can be bound to update automatically when an observable object changes.
Two-way data bindingModels and views can be bound to update each other.
Two-way data bindingModels and views can be bound to update each other.
Plugin extension for two-way databinding availableCan be extend to support models and views updating each other. This adds more filesize but allows for more flexibility.
Plugin extension for two-way databinding availableCan be extend to support models and views updating each other. This adds more filesize but allows for more flexibility.
Models are plain JavaScript objectsThis makes for easier data transfer between the app and REST Services or the LocalStorage. It also reduces complexity from getter and setter functions.
Models are plain JavaScript objectsThis makes for easier data transfer between the app and REST Services or the LocalStorage. It also reduces complexity from getter and setter functions.
Use of view mixins allowedMixins are a programming technique that allows different objects to share common behaviour without the need for object-oriented inheritance.
Use of view mixins allowedMixins are a programming technique that allows different objects to share common behaviour without the need for object-oriented inheritance.
Total score for "Data binding"
Total score for "Data binding"
Performance
Minified file size without dependenciesSmaller file size means faster load times.
Minified file size without dependenciesSmaller file size means faster load times.81KB
78KB
235KB
19KB
69KB
65KB
43KB
120KB
247KB
31KB
Routing and deep linking supportedRouting allows interaction with the browser url. This is very important for a good user experience if you are building one-page apps.
Routing and deep linking supportedRouting allows interaction with the browser url. This is very important for a good user experience if you are building one-page apps.
Rendered on the serverThis greatly improves search engine crawlability. This possibly improves page speed, especially on devices with low computing power.
Rendered on the serverThis greatly improves search engine crawlability. This possibly improves page speed, especially on devices with low computing power.
Templates can be pre-compiled on the serverSupports a template engine that can be pre-rendered on the server. This possibly improves page speed, especially on devices with low computing power.
Templates can be pre-compiled on the serverSupports a template engine that can be pre-rendered on the server. This possibly improves page speed, especially on devices with low computing power.
Promises/A+ implementationHas an internal implementation of the Promises/A+ specification. Promises are a popular alternative to callbacks when dealing with server responses.
Promises/A+ implementationHas an internal implementation of the Promises/A+ specification. Promises are a popular alternative to callbacks when dealing with server responses.
Total score for "Performance"
Total score for "Performance"
This page is currently only available in English.