Best MV* frameworks of 2020

Which are the best MV* frameworks of 2020?

Best MV* frameworks of 2020 (1 - 5)
MV* framework comparison
Comparison winner
MV* framework comparison
Comparison winner
AngularJS
Comparison winner
React
Comparison winner
Ember JS
Comparison winner
Backbone JS
Comparison winner
CanJS
Comparison winner
Ractive JS
Comparison winner
Knockout JS
Comparison winner
rAppid JS
Comparison winner
batman js
Comparison winner
Spine
Image
AngularJS
100points
React
95points
Ember JS
76points
Backbone JS
68points
CanJS
64points
Ractive JS
60points
Knockout JS
55points
rAppid JS
52points
batman js
50points
Spine
46points
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)
Pros
Pros
  • Models are plain JavaScript objects
  • Promises/A+ implementation
  • Extends HTML
  • Automatic view filtering
  • Plugin to support animation
  • More plugins
  • Models are plain JavaScript objects
  • DOM manipulation library agnostic
  • Use of view mixins allowed
  • Rendered on the server
  • Integrates with other MV* Frameworks
  • Plugin to support animation
  • Promises/A+ implementation
  • Automatic view filtering
  • Plugin to support animation
  • Input validation plugin
  • Smaller file size without dependencies
  • Rendered on the server
  • Plugin extension for two-way databinding available
  • More plugins
  • Dedicated plugin source
  • Input validation plugin
  • Promises/A+ implementation
  • DOM manipulation library agnostic
  • Dedicated plugin source
  • DOM manipulation library agnostic
  • Extends HTML
  • Input validation plugin
    • Extends HTML
    • Automatic view filtering
    • Smaller file size without dependencies
    Cons
    Cons
    • Minified file size without dependencies
    • Templating engine
    • Templates can be pre-compiled on the server
    • Official entry in the npm package manager
    • Minified file size without dependencies
    • Two-way data binding
    • Routing and deep linking supported
    • Templating engine
    • Published under MIT License
    • Official entry in the npm package manager
    • Minified file size without dependencies
    • Bower dependency management support
    • Compatibility with AMD libraries such as Require.js
    • Built-in RESTful sync abstraction for models
    • Two-way data binding
    • One-way data binding
    • Minified file size without dependencies
    • Number of plugins
    • Two-way data binding
    • Official entry in the npm package manager
    • Minified file size without dependencies
    • Templates can be pre-compiled on the server
    • Built-in RESTful sync abstraction for models
    • Routing and deep linking supported
    • Bower dependency management support
    • Compatibility with AMD libraries such as Require.js
    • Built-in RESTful sync abstraction for models
    • Minified file size without dependencies
    • Templates can be pre-compiled on the server
    • Bower dependency management support
    • Minified file size without dependencies
    • Templating engine
    • Templates can be pre-compiled on the server
    • Bower dependency management support
    • Compatibility with AMD libraries such as Require.js
    • Official entry in the npm package manager
    • Two-way data binding
    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.213N.A.N.A.1537N.A.33N.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.81KB78KB235KB19KB69KB65KB43KB120KB247KB31KB
    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.