CanJS
CanJS
Top 39%373 points
Top 39%
Key features and highlights

CanJS: 21 facts and highlights

1. minified file size without dependencies

Smaller file size means faster load times.
69KB
Flight: 14KB

2. Supports routing and deep linking

Routing allows interaction with the browser url. This is very important for a good user experience if you are building one-page apps.
CanJS
67% have it

3. Uses Promises

Has an internal implementation of the Promises/A+ specification. Promises are a popular alternative to callbacks when dealing with server responses.
CanJS
20% have it

4. Uses a templating engine

Template engines allow for easy and flexible UI building.
CanJS
67% have it

5. Supports computed properties

Allows the use of functions as properties to compute properties of objects.
CanJS
33% have it

6. Supports one-way data binding

Views can be bound to update automatically when an observable object changes.
CanJS
80% have it

7. Published under MIT License

The MIT License is a very permissive license which allows all uses, including business use, without warranty.
CanJS
87% have it

8. Templates can be pre-compiled on the server

Supports a template engine that can be pre-rendered on the server. This possibly improves page speed, especially on devices with low computing power.
CanJS
60% have it

9. Is DOM manipulation library agnostic

Does 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.
CanJS
20% have it

10. Supports composed (partial) views

Allows for nesting view templates into top-level views from within a template.
CanJS
60% have it

11. dependencies

Less dependencies means less extra scripts to include, usually resulting in less development overhead and faster load times.
1
SproutCore: 0

12. number of plugins

From the official plugin sources. Plugins offer an easy way to extend the functionality or integrate with other services. A high number of plugins means that there is an active community of users.
7
AngularJS: 213

13. Has integrated input validation

Built-in utilities 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.
CanJS
40% have it

14. Built-in RESTful sync abstraction for models

Includes utilities to keep models in sync with their server-side representation without the need of writing jQuery boilerplate ajax calls.
CanJS
47% have it

15. Works well with more than just one template engine

Other frameworks might be locked with a template engine you don’t like and there is nothing you can do about it.
CanJS
40% have it

16. Uses observables for data binding

Models are observed for changes. This is a well known pattern. Can be more performant than dirty-checking in some cases.
CanJS
80% have it

17. Has a stable public API

The major version number is above 0. This means there will be no compatibility breaking API changes introduced by the development team.
CanJS
53% have it

18. has a dedicated plugin source.

This shows that the framework has a living ecosystem, large community support and allows for more flexibility and faster development.
CanJS
27% have it

19. versions of Internet Explorer supported

Legacy browser support can be important for corporate projects and projects with a large user base consisting of Internet Explorer users.
7
rAppid JS: 0

20. Works with AMD libraries such as require.js

Asynchronous 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.
CanJS
60% have it

21. Officially supports Bower dependency management

Bower is an easy-to-use, npm-like package manager for frontend applications.
CanJS
53% have it

Top 10 MV* frameworks

Add to comparison
    Compare
    This page is currently only available in English.