Wednesday, March 1, 2017

KnockoutJS - Overview

What is KnockoutJS?

KnockoutJS is basically a library written in JavaScript that is based on MVVM pattern that helps developers building rich and responsive websites. This separates the application's Model (stored data), View (UI) and View Model (Javascript Representation of model).
KO is an abbreviation used for KnockoutJS.

History

KnockoutJS was developed and is maintained as an open source project by Steve Sanderson, a Microsoft employee on July5, 2010.

Features

  • Declarative Binding - HTML DOM elements are connected to model through data-bind attribute using very simple syntax. It is made easy to achieve responsiveness using this feature.
  • Automatic UI Refresh - Any changes made to view model data are reflected in UI automatically and vice-versa. No need of writing extra code for this.
  • Dependency Tracking - Relationship between KO attributes and KO library functions/components is transparent. Automatically tracks data changes in KO attribute and update respective affected areas.
  • Templating - Templates are a simple and convenient way to build complex UI structures - with possibility of repeating or nesting blocks - as a function of view model data.
  • Extensible - Extends custom behavior very easily.

Why use KnockoutJS?

  • KnockoutJS library provides an easy and clean way to handle complex data-driven interfaces. One can create self-updating UIs for Javascript objects.
  • It is pure JavaScript Library and works with any web framework. It's not a replacement of Jquery but can work as supplement providing smart features.
  • KnockoutJS library file is very small & lightweight.
  • KnockoutJS is independent of any other framework. And is compatible with other client or server side technologies.
  • Most important of all KnockoutJS is open source and hence free for use.
  • KnockoutJS is fully documented. The official site has full documentation including API docs, live examples and interactive tutorials.

Browser Support

KO supports all mainstream browsers - IE 6+, Firefox 3.5+, Chrome, Opera, Safari (desktop/mobile).

No comments:

Post a Comment