64points

CanJS

CanJS
vs

CanJS review: 21 facts and highlights

CanJS
64
points
CanJS

Why is CanJS better than the average?

  • Minified file size without dependencies
    ?

    69KBvs75.64KB
  • Versions of Internet Explorer supported
    ?

    7vs7.33

General info

1.Uses a templating engine
CanJS
Template engines allow for easy and flexible UI building.
2.Supports computed properties
CanJS
Allows the use of functions as properties to compute properties of objects.
3.Published under MIT License
CanJS
The MIT License is a very permissive license which allows all uses, including business use, without warranty.
4.Supports composed (partial) views
CanJS
Allows for nesting view templates into top-level views from within a template.
5.Has a stable public API
CanJS
The major version number is above 0. This means there will be no compatibility breaking API changes introduced by the development team.
6.Has integrated input validation
CanJS
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.

Plugins

1.number of plugins

7

Plugins 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.
2.Built-in RESTful sync abstraction for models
CanJS
Includes utilities to keep models in sync with their server-side representation without the need of writing jQuery boilerplate ajax calls.
3.has a dedicated plugin source
CanJS
This shows that the framework has a living ecosystem, large community support and allows for more flexibility and faster development.

Libraries & Packages

1.Is DOM manipulation library agnostic
CanJS
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.
2.Works with AMD libraries such as require.js
CanJS
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.
3.Officially supports Bower dependency management
CanJS
Bower is an easy-to-use, npm-like package manager for frontend apps.

Data binding

1.Supports one-way data binding
CanJS
Views can be bound to update automatically when an observable object changes.
2.Uses observables for data binding
CanJS
Models are observed for changes. This is a well known pattern. Can be more performant than dirty-checking in some cases.

Performance

1.minified file size without dependencies

69KB

Smaller file size means faster load times.
2.Supports routing and deep linking
CanJS
Routing allows interaction with the browser url. This is very important for a good user experience if you are building one-page apps.
3.Uses Promises
CanJS
Has an internal implementation of the Promises/A+ specification. Promises are a popular alternative to callbacks when dealing with server responses.
4.Templates can be pre-compiled on the server
CanJS
Supports a template engine that can be pre-rendered on the server. This possibly improves page speed, especially on devices with low computing power.
5.dependencies

1

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

Follow Versus on Instagram

Follow @versusdotcom

Which are the best MV* frameworks?

Show all
This page is currently only available in English.