Knockout (http://knockoutjs.com) is a good option if you want to use a Model-View-ViewModel (MVVM) approach to building your web parts. The fundamental difference between MVVM and other MVx patterns is that View and ViewModel are linked by data-binding. Following the MVVM pattern, Knockout separates the development of a UI in the form of an HTML template from the business logic (the data model). In practice, this means that there is a model (HTML template), view (TypeScript class), and binder (Knockout internal code) that work together to achieve a UI reflecting the changes in the data. Knockout is really just a data-binding library rather than a full framework in its own right.
Microsoft's SharePoint Yeoman template includes the possibility to build a HelloWorld web part using Knockout and it is the best place for us to start. Create the web part as any web part, but this time select Knockout as a framework:
Let's examine how Knockout works in SharePoint Framework...