Among the various JavaScript libraries available to developers, KnockoutJS really stands out due to the diverse features it provides and also because it promotes the use of the Model-View-ViewModel (MVVM) design pattern to build data-driven web applications. Construct power-packed apps without compromising on its flexibility and build rich user interfaces, which will update in real-time when the data model state changes, eliminating the need to refresh pages.
Learning KnockoutJS will walk you through all of the key features of KnockoutJS and make it easy for you to quickly and easily build feature-and data-rich web applications that are easy to extend and maintain.
We start off with a brief introduction to KnockoutJS, and its various benefits, and explore the different design patterns in context of KnockoutJS to make your JavaScript code cleaner and more manageable. After that, we will walk through and understand the relationship between Models, Views, and ViewModels, as well as creating them.
Along with that, you will also learn how we can use the different data binding attributes to manipulate the output. We will also discuss and implement various important concepts such as two way data binding and dependency tracking to update your UI in real-time and to separate the components of your application into logical parts.
We will analyze Knockout's template feature to help you deal with data context in most scenarios. Then, we will take a look at how to track the changes in dependencies and subscribe to them using computed observables and subscriptions. Furthermore, you will also learn how to customize bindings and functions as well as using extenders to create our own set of Knockout tools. Finally, we will take a look at some advanced features of KnockoutJS to take your knowledge to the next level!
Learning KnockoutJS is more than just an introduction; it's a complete course on one of JavaScript's innovative libraries.
About The Author
Robert Gaut is a father, husband, musician, photographer, martial artist, and software developer. He began his career teaching application and database development at a technical college. After several years teaching, he spent more than a decade developing web-based content management systems for the automotive industry. He currently works for a large public school district where he develops business applications and data integration processes using Microsoft technologies.