
This video will provide an overview of what will be taught in this course. We will orient the viewer on what KnockoutJS is and what it can accomplish for them; also, a sample project will be demonstrated.
We will explain the MVVM software design pattern in relation to other MV* patterns (such as MVC and MVP). Describe how KnockoutJS uses MVVM in a web environment.
Describe the Observer software design pattern and how KnockoutJS implements it using the observable and observableArray data types.
There are many ways to get JavaScript to mimic the class structure of OOP languages. Examine several popular methods and then introduce the Module pattern and Revealing Module Pattern.
We will create a website with the necessary Models, Views, and ViewModels to establish a KnockoutJS application.
In order to display our model's data, we need to add data-binding syntax to the markup in our View.
There are several ways to data-bind attributes on HTML elements with KnockoutJS. We will take a look at three ways of manipulating attributes with KnockoutJS.
We will take a closer look at how to update the View Model from an HTML form element as well as populate an HTML form element with data from the View Model.
Investigate how to data-bind various HTML form elements with KnockoutJS.
Demonstrate additional bindings that can help control the appearance and functionality of HTML form elements.
Context is fundamental to the MVVM pattern and data-binding. Yet, it's often misunderstood. Demonstrate and explain the commonly used context objects in KnockoutJS.
Templates allow Knockout developers to consolidate and share UI elements among many data-binding scenarios. Templates create a new binding context; it's necessary to understand how to deal with the new context.
Sometimes, it's necessary to use multiple ViewModels in a single View. We examine a few methods to compose a View and View Model using multiple ViewModels.
There are times when you want to bind to a different representation of your data than what is provided in the raw data. Using computed and pureComputed observables, you can accomplish this task.
Subscribing to observables allows you to intercept changes made to them and perform additional tasks.
You can attach custom functions to Knockout's core value types to extend their functionality.
Extenders allow you to augment the functionality of observables by adding new properties.
Custom bindings are a way of encapsulating behavior and exposing it in the same way in which you use 'text' or 'foreach' bindings.
Components and custom elements allow you to consolidate often-used code into a single, reusable unit.
AMD module loaders make it easy to modularize your code and load dependencies.
Durandal is a framework that uses KnockoutJS and RequireJS to build single-page applications.
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.