Knockout.js

(32)
4.2 out of 5 stars

Knockout is a standalone JavaScript implementation of the Model-View-ViewModel pattern

Work for Knockout.js?

Learning about Knockout.js?

We can help you find the solution that fits you best.

Knockout.js Reviews

Write a Review
Filter Reviews
Filter Reviews
  • Ratings
  • Company Size
  • User Role
  • Industry
Ratings
Company Size
User Role
Industry
Showing 34 Knockout.js reviews
LinkedIn Connections
Knockout.js review by <span>An P.</span>
An P.
Validated Reviewer
Review Source

"Easier to use and much more lightweight than other similar frameworks"

What do you like best?

If you're not concerned about routing and only really need to do some data binding than dropping in one file with Knockout is better than using their other more popular JS frameworks. AngularJS manages the whole application whereas with KnockoutJS the application structure is entirely up to you. I decided to use Knockout because I prefer to do most of the coding myself.

What do you dislike?

The if-else conditionals need to be improved. Other simple programming constructs aren't implemented either. Code output is also very cluttered when inspecting the DOM after rendering. Ways to download and manipulate templates could also be better.

Recommendations to others considering the product

If you don't play on using Angular or React than Knockout.js is probably the best choice for simple data binding.

What business problems are you solving with the product? What benefits have you realized?

I use Knockout mostly for templating and gives me the ability to separate the code into more manageable structure.

Sign in to G2 Crowd to see what your connections have to say about Knockout.js
Knockout.js review by <span>Eniko P.</span>
Eniko P.
Validated Reviewer
Verified Current User
Review Source

"KnockoutJS is an organizational library to create easy to understand, extendable web apps"

What do you like best?

While learning javascript, my first Model-Vew-Viewmodel (MVVM) technology was KnockoutJS. It is simple to understand, well documented tool and has a decent community. For a beginner or while developing relatively simple one-page web apps, I found KnockoutJs knocks the other framework out by its simplicity and performance. You very quickly get the hang of it.

It is an amazing tool to bind User Interface (UI) with your data model. Through bindings, you can create set of DIVs from just an array (either coded in javascript or using jQuery). Whenever the array changes, the UI changes consistently. To add or delete any DOM element based on UI changes is just a line of code.

Adding search or filter functionality to your web app becomes extremely easy.

What do you dislike?

KnockoutJS's main scope is data binding and templating, to create more complex web application you need to combine it with other library(ies).

Recommendations to others considering the product

If you are a beginner front end web developer or new to MVVM technology, I recommend to start with KnockoutJS. It is well documented, easy to understand and supported by a decent community.

It is definitely worthwhile to add to your web development technology toolbox orconsider as a solution in your future web development projects.

What business problems are you solving with the product? What benefits have you realized?

While creating a Neighborhood Map web application that is offline first and a single-page application, KnockoutJS helped me to keep my code streamlined, well organized and easily extendable. I could avoid long spaghetti codes thanks to data bindings.

What Java Web Frameworks solution do you use?

Thanks for letting us know!
Knockout.js review by <span>Anas J.</span>
Anas J.
Validated Reviewer
Verified Current User
Review Source
Business partner of the vendor or vendor's competitor, not included in G2 Crowd scores.

"Fast development with knockout MVVM framework"

What do you like best?

1- The way of using declarative bindings

2- Awesome template systems.

3- large amount of plugins to use it.

4- Can develop single page application with Drundal that based on knockout.

5- Using MVVM UI Design Pattern.

6- Knockout is great for creating decoupled models and apply them to views through declarative data binding. It also gives you two way change tracking between view and model.

7- Contains KO utility functions (ko.utils).

What do you dislike?

1- you need to use plugins for some basic features like url routing and validation.

2- Some performance issues when you render large number of items in html.

3- Need ES6 Integration.

4- Need for more complex examples.

5- Data-binding is mixed with html elements.

Recommendations to others considering the product

I recommend to use Drundal instead of only use knockout because it contains many features to build fully Single Page Application.

What business problems are you solving with the product? What benefits have you realized?

Utilize MVVM framework that help me on fast development and minimize the number of defects in development phase.

Knockout.js review by <span>Chris H.</span>
Chris H.
Validated Reviewer
Verified Current User
Review Source

"Easy creation of Dynamic reusable frontend interfaces"

What do you like best?

It makes building dynamically populated pages super easy allowing you to offload the rendering of the data to the client instead of having to do it all server side on request. It also makes it very easy to make the pages of our site dynamically hide and show different sections depending on the values entered/selected by the user.

What do you dislike?

There are some features that have almost no documentation, like in a component if you have a function attached to the view modal called "dispose" it will get called as it is cleaning up the component. I would think this would be important to know for single page apps to cut down on memory leaks from subscriptions and computeds.

Recommendations to others considering the product

Go through the tutorials on the official Knockout.js site. It will help you get a good basic understanding of what Knockout.js is designed to do and the problems it's meant to help solve.

What business problems are you solving with the product? What benefits have you realized?

It is helping us by making the server having to do less work when a client wants to view a page due to putting all the dynamic rendering onto the clients browser instead of the server. And with the use of cache manifests we have been able to cut down the amount of work our servers need to perform by a large margin.

Knockout.js review by <span>Karl Marx L.</span>
Karl Marx L.
Validated Reviewer
Verified Current User
Review Source

"Painless and a flexible front end library."

What do you like best?

I like it's flexibility and it is back-end agnostic. It is easy to learn in a short span of time, it has a nice set of Utility functions and I LOVE using it! I finished four projects using KnockoutJS and they all perform well. The documentation is straight to the point and I think that is a big plus compared to other JS libraries, that is maybe BETTER, but it lacks a good documentation.

What do you dislike?

I disliked the declarative binding. Because sometimes I end up mixing my script in my HTML. But this library solves that problem https://github.com/rniemeyer/knockout-delegatedEvents, made by Ryan Niemeyer, one of the Knockout's author.

What business problems are you solving with the product? What benefits have you realized?

Emulating a native desktop app experience using jQuery ajax and knockout. It is easy to parse JSON formatted strings and display it on the user. Knockout also helps you develop faster using it's collection of utility functions and you can create your own bindings, and your own components. It makes your application more responsive.

Knockout.js review by <span>Ken D.</span>
Ken D.
Validated Reviewer
Verified Current User
Review Source

"Knockout a single page web app quickly with Knockout.js"

What do you like best?

When implementing Model View ViewModel practices, creating applications with Knockout.js was very easy. Much of the code you're writing looks like normal JavaScript objects with some Knockout observable logic dropped in. Knockout gives you the ability to create applications as complex as you want, with data properties as complex as you can imagine, and the data-binding it offers means your data will show up as you want it.

What amazed me was how simple and small some of the changes were when I needed to do something complex. Most code changes were 1-4 lines long, to create some custom feature that would normally be 100 lines of jQuery or Dojo code.

What do you dislike?

Knockout differs from some more comprehensive frameworks (like Angular or Ember) where everything is included. Knockout provides data-binding, but lacks features found in full frameworks like routing or UI controls. However, you can mix and match other libraries in your app that handle those features, and it integrates very well. You can mix in jQuery UI user controls, or a library like Sammy.js for routing, and let Knockout handle the data binding and keeping up with the state of your application. It depends on how much you want to get your hands dirty with mixing in different libraries.

The one issue I had was that support for more complicated examples and integration with other libraries was hard to find. I'd often find the answer somewhere on StackExchange, or buried in a 5 year old blog that was abandoned 3 years ago.

Recommendations to others considering the product

There are frameworks out there that do more (like AngularJS or Ember). But if you need to create a single page application quickly, and you don't want to experience the crazy learning curve that those frameworks require, try Knockout.js. It's easy to use, and you'll be amazed at what you can create within the first hour. You can be very productive very quickly with this library.

What business problems are you solving with the product? What benefits have you realized?

I was tasked with creating a property search website for a government organization. Once we had the data model for the project, creating the single page web application and adding all the special logic within was a breeze. When change requests came (and we received a lot of them), I was able to handle most of them with just a few lines of code. I was amazed at how quickly we could turn around change requests to the client.

Knockout.js review by <span>Ruslan L.</span>
Ruslan L.
Validated Reviewer
Verified Current User
Review Source

"I have been using Knockout for about 4 years in a big enterprise application."

What do you like best?

Knockout is unobtrusive library with focus on data binding. It's very easy to create app with complex UI logic and bind it to UI representation. The best thing about Knockout, it doesn't stand in your way.

What do you dislike?

You have to write a lot of ko.observable for complex objects. But still there's a Knockout ES5 plugin that automates observables. The drawback of the plugin that it doesn't support old browsers.

Recommendations to others considering the product

Take into account that knockout is just a library with focus on data-binding. It has no routing

What business problems are you solving with the product? What benefits have you realized?

I use knockout for enterprise app in medical field. Knockout enables to create complex UI with grids, wizards, panels and it makes easy to implement UX best practices. It takes very few time to implement features and deliver business solutions in a short term compared to using other technologies.

Knockout.js review by <span>Matt A.</span>
Matt A.
Validated Reviewer
Verified Current User
Review Source

"Great framework"

What do you like best?

Binding dom elements to javascript objects for data driven changes.

What do you dislike?

It is a very flexible framework and with power comes great responsibility. It is very easy to start to break best practices because knockoutjs will not force you to do things correctly. This is very powerful, but if you do not hold your developers to a coding standard things can get very muddled and it can lead to problems.

Recommendations to others considering the product

Really consider if it meets all your requirements. It's powerful with what it does, but it's not Angular.

What business problems are you solving with the product? What benefits have you realized?

We use it in several business web apps for binding data to dom elements and for components. We have a lot of data and input fields so having an easy way to bind the data between the business logic and the UI is very useful.

Knockout.js review by <span>Danny W.</span>
Danny W.
Validated Reviewer
Verified Current User
Review Source

"Simple to use, but can can be difficult to debug"

What do you like best?

The library does not include more features than it needs and is easy to understand. The documentation on their site is fairly detailed with some good examples. The ability to bind changes to dom elements makes plain jQuery look ancient.

What do you dislike?

Cretan kinds of errors thrown to the console give little or no information on what the actual issue is. Often times it can be easy just trying to guess around to find the source of an issue. Some of the more advanced and highly useful features are only found on blogs outside of their site.

What business problems are you solving with the product? What benefits have you realized?

We have developed several applications using the knockout library. The library has been very convenient for displaying updates to page elements as the use inputs data without reloading the page.

Knockout.js review by <span>David D.</span>
David D.
Validated Reviewer
Review Source

"Very good data-binding framework"

What do you like best?

Knockout.js is a very well-documented, tiny javascript MVVM framework.

It is very easy to use and it has many extension points which very good if you have special needs or want to create custom bindings.

As it focus only data-binding and templating, it will play nicely with other libraries.

One difference with other frameworks is that it has support for browser back to IE6, so it can be a good choice if you have to support legacy browsers.

What do you dislike?

Recently knockout.js development seems to slow down quite a bit, and other frameworks with similar purpose such as React, Vue.js or Aurelia are gaining momentum.

The legacy browser support can also be seen as a drawback as knockout.js is not taking avantage of new javascript features and has no compatibility with ES6.

Components have been introduced on newer versions but that are a little tricky to implement.

Recommendations to others considering the product

Knockout.js is definitely a framework to consider if you are looking for a pluggable MVVM library, especially if you are looking for old browser compatibility

What business problems are you solving with the product? What benefits have you realized?

If you are looking for a javascript data-binding framework you should definitivelly consider knockout.

Differently from Angular.js, it does not aim at providing you everything you need for SPA development (for example data validation, routing are not included) so it needs to be integrated with other librariies and framework.

Knockout.js review by <span>Furqan R.</span>
Furqan R.
Validated Reviewer
Review Source

"Working on a product using knockout with MVC 5"

What do you like best?

I came from a WPF background so I am very excited to see databinding and ease it provides with UI customization, adding and removing css on the fly makes it very robust. I was just discussing with my brother how knockout allows conditional tags to be added to the html which provides considerable flexibility in creating templates for different kinds of form controls and based on customer requirement we can apply custom styling on each control. Moreover, we are also using knockout for data validation which is another neat feature and very critical functionality to our customers.

What do you dislike?

I consider myself as a beginner user right now. I don't have any particular dislikes at the moment.

What business problems are you solving with the product? What benefits have you realized?

I work on a data collection application and our product requires customization of the forms to fit the customer needs which means, we allow our customers to design their own forms. This requires a considerable amount of reusable components and conditional styling.

Knockout.js review by <span>Matt G.</span>
Matt G.
Validated Reviewer
Review Source

"Effective for small to medium-sized web apps"

What do you like best?

While it's not the newest framework around, Knockout remains a great choice for developers looking for a non-intrusive data-binding/templating solution in the front end. Unlike Angular and React, Knockout does not attempt to control the structure of your application. Thanks to its wonderfully expressive design, It's easy to hit the ground running and create surprisingly complex components for your application quickly. Custom bindings and elements can be used to do just about anything, and make it easy to integrate with other libraries or frameworks.

What do you dislike?

Knockout does not include a router or HTTP client, so you will need to include some other libraries if you are creating a single-page application. While it is definitely possible to write performant apps with Knockout, it is easy to run into performance issues if you are not aware of some of the more obscure features or if you go overboard with two-way data-binding. For this reason, you might want to use something more comprehensive for large applications. Although it still recieves updates, Knockout is ancient in JavaScript time, so you may want to think twice about using this if you intend to stay on the cutting edge.

Recommendations to others considering the product

If you want a front-end framework for a small/medium-sized project that is easy to learn and to integrate into any codebase, Knockout is a great choice. Just be aware of what else is out there.

What business problems are you solving with the product? What benefits have you realized?

Knockout's approach to data-binding is its biggest strength, the use-cases for which are numerous.

I started using Knockout when tasked with creating a series of single-page applications involving the graphical manipulation of complex data structures. It did the job and then some, however after carrying forward with some larger UI's (with the number of bindings in the triple digits), the performance hits started to become noticeable.

Knockout.js review by <span>kevin s.</span>
kevin s.
Validated Reviewer
Review Source

"Amazing Framework"

What do you like best?

The main reason I have been using Knockout ever since I learnt about it is because it facilitates the update of data based on user's input and interactivity with a UI on real time. Another feature that I like about the framework, is how it makes working with forms and its value data very easy. Forms are the main way we get input from users so it comes in handy whenever we need to observe or listen to changes on the value of the forms.

What do you dislike?

It is hard to say what I do not like from the framework. But I can tell you a few areas where I wish the framework behave in a different manner. For example,it is frustrating when you have an active ViewModel and you cannot access data that resides inside of the ViewModel anywhere outside it. I know that this might have to do with programming scoping rules but it would be nice to have a way to at least refer to data that resides inside the ViewModel when you working outside of it. Also, it is frustrating that you cannot debug the code that resides inside the ViewModel when debugging with Google Chrome Tools.

Recommendations to others considering the product

I think you cannot go wrong with Knockout.js It is a fully fledged Javascript framework that will save you a lot of times and headaches by making connection between view and data more easy to control

What business problems are you solving with the product? What benefits have you realized?

Using Knockout has benefit me because it speeds production of interactive websites and makes making a connection between the view and the data easy.

Knockout.js review by <span>Giorgio B.</span>
Giorgio B.
Validated Reviewer
Review Source

"Had its glory days but now are (almost?) gone"

What do you like best?

In the beginning of this decade it was a pioneering library that opened the road for other ones, like Angularjs. Its good point is that it doesn't claim to solve all the tasks needed to build a complex Javascript app but tries to solve mainly a problem: binding data from javascript structures to HTML elements and viceversa, what is called "two way binding". This really was a big selling point, because it makes really easy to drive HTML/DOM and interact with it, but as we will see, it can also be a double edged sword. Still, if you need this kind of binding and don't want to"buy" a big framework like Angular.js, this could be a good choice.

What do you dislike?

"Two way binding". It work wonders and makes magic things possible, but with power comes responsibilities (and troubles). I've seen projects where it was abused to the point where it was needed to open the magic box and mess with the internals to accomplish otherwise simple tasks. So beware to use with caution and strictly following the intended use, philosophy and idioms.

What business problems are you solving with the product? What benefits have you realized?

Personally I've used it to build rich client side interactions but limited to parts of bigger classic MVC web apps. Just ones I worked on a project built largely on it (single page app) and had to struggle to understand and untangle some weird data dependency crossings.

Knockout.js review by <span>Daniel C.</span>
Daniel C.
Validated Reviewer
Review Source

"Good framework for SPA"

What do you like best?

The best of Knockout is its simplicity and the fact that it doesn't try to do a lot of things like other client side frameworks like Angular, Ember, or Backbone - it only has a very small and focused set of features around "observables" which provides you with a very easy to use MVVM architecture for your app. The backward compatibility is also very good, even old browsers like IE6

What do you dislike?

It has not been actively maintained / improved in the last couple of months, looks like the creator, Steve Sanderson is not working anymore on it.

Recommendations to others considering the product

Have a look at other frameworks before like Angularjs, which are more popular around the community and better maintained / supported. Investing time in a JS framework can be very expensive for you and your company, so try and pick the best framework that fits you need before diving in*.

What business problems are you solving with the product? What benefits have you realized?

I have built 2 SPAs using Knockoutjs currently used in production for my company. As a benefit, our implementation times for complicated UI / UX using Knockoutjs has been greatly reduced, mainly cause of our expertise and also because its ease to use.

Knockout.js review by <span>Adam B.</span>
Adam B.
Validated Reviewer
Review Source

"Knockout.js - Great for small to medium sized applications"

What do you like best?

I really like the two-way data-binding aspect when working with a bunch of user interactions. Keeping the data-layer in sync with the view layer automatically saves developers a lot of time and prevents annoying synchronization bugs.

I also really like the very small API footprint. You can learn and memorize the whole API in a day or less and be productive very quickly.

I also like how you can use it on just a very small part of your website. You can even use it for a single form in an otherwise static webpage. If you use Knockout, you aren't making a huge technical commitment.

What do you dislike?

I don't dislike this per se, but two-way data binding is considered an anti-pattern by a large swath of front end developers. You'll have to evaluate how important that is to you. There are still many very popular front end frameworks that implement this pattern, so it's not going away any time soon.

Something I did dislike about Knockout is it does not scale particularly well. Once your application grows beyond a certain complexity, you'll find yourself having to write A LOT of code to try to keep up with requirements if you try to build anything more than basic web applications.

Knockout really only provides the most basic aspect of the MV* design pattern; you'll be responsible for a client-side router, something to make request back to a server, cookie management, etc. It's important to remember Knockout is a library and NOT a framework.

What business problems are you solving with the product? What benefits have you realized?

I was using Knockout for a simple internal website where users would enter various pieces of information and that would be saved back to the database. The two-way data binding allowed very strict validation at the data layer and prevented erroneous data from making it into the database.

Knockout.js review by <span>Akshat Jiwan S.</span>
Akshat Jiwan S.
Validated Reviewer
Review Source

"Knockout helps you write cleaner code for complex web apps"

What do you like best?

I loved the interactive examples. When you're starting out with a new library/framework it is crucial that you get a hang of basics quickly. With the help of interactive examples I was able to write productive code with knockout within a couple of days.

What do you dislike?

Initially combining knockoutjs with other frameworks like jquery proved a bit challenging for me. The documentation which is otherwise fantastic lacks examples on how to make knokcout work with other frameworks.

Recommendations to others considering the product

Try out the interactive demo. It takes no more than 20 minutes to complete all the exercises and after you've done so you'll be in a much better position to take a decision.

What business problems are you solving with the product? What benefits have you realized?

Knockout js helps us write clean maintainable code. It reduces the chances of bugs,makes adding new features to the UI easy and helps us deliver a superior product to our customers.

Knockout.js review by <span>Flávio C.</span>
Flávio C.
Validated Reviewer
Review Source

"I used it for 2-way data-binding on a RIA system and it was very lightweight and fast"

What do you like best?

It is cross browser up to IE6 and provides 2-way data-binding out of the box, in an extremely not intrusive/opnionated way. Besides, the lib is lightweight and fits in lots of projects that are agnostic to data binding.

Besides, using Knockout enables programmers to express behavior in a declarative way, which allows for much less javascript code in projects.

What do you dislike?

There is no concern separation because the knockout declarations go inside the html files, mixed with the html tags.

Recommendations to others considering the product

It's a good option if you want 2-way data-binding in an unobtrusive/unopionated fashion and using declarations instead of writing a lot of javascript code.

What business problems are you solving with the product? What benefits have you realized?

By using Knockout I was able to develop a lot of functionality without spending much time writing javascript code. Besides, testing was easy because the lib is widely compatible, even with old browsers.

Knockout.js review by <span>Matthew N.</span>
Matthew N.
Validated Reviewer
Verified Current User
Review Source

"Easy start for smaller projects"

What do you like best?

The simplicity of getting started is nice but even better are the components which are a must for a larger application. The knockout.js website has some of the best interactive tutorials I've experienced for a JS framework.

What do you dislike?

The visual delay, especially on larger applications, between HTML rendering and Knockouts rendering is definitely suboptimal.

While the knockout.js website documentation is great it could use a better discussion on the mapping plugin which is super useful but the documentation has some gaps.

Recommendations to others considering the product

Definitely look into components, they make things so much better.

What business problems are you solving with the product? What benefits have you realized?

Building large data entry application.

Knockout.js review by <span>Federico R.</span>
Federico R.
Validated Reviewer
Review Source

"Quite good for common UI needs"

What do you like best?

It's very easy to create complex user interfaces. MVVM is great for managing forms and app-like UI. Knockout also gives you a lot of power and choice, it's basically just the "View Layer". Also it's very easy to create custom bindings and components.

What do you dislike?

It's a big too heavy as it supports very old browsers, it'd be great if there was a "modern" version without all those extras. View Models can grow a lot, it's up to the developer to keep them small.

Recommendations to others considering the product

Worth giving it a try, it's not hard to pick up.

What business problems are you solving with the product? What benefits have you realized?

Out of all the other libraries Knockout is probably one of the easiest to pick up and get up and running with. You can make a quite complex UI very fast using KO.

Knockout.js review by User in Computer Software
User in Computer Software
Validated Reviewer
Verified Current User
Review Source

"Knockout large data collection project"

What do you like best?

Small and fairly simple to work with. It does one thing and does it well. We cache our scripts for offline use so smaller frameworks are always a plus for us.

What do you dislike?

The syntax it not as clean as some other binding frameworks so complex bindings can be a bit hard to decipher at a glance.

Recommendations to others considering the product

If you need just data-binding and not everything that a framework like Angular has to offer it's a great lightweight option.

What business problems are you solving with the product? What benefits have you realized?

We have a large multi-page form for collecting patient data and it contains thousands of possible datapoints. Using knockout has removed so much boilerplate code to make that work. It abstracts away so much and makes for nice testable units with the MVVM model.

Knockout.js review by User in Computer Software
User in Computer Software
Validated Reviewer
Review Source

"Data-binding an enterprise-level data collection application"

What do you like best?

Knockout made it really easy to bind data between my view and my model. Once components were introduced, we were easily able to convert complex portions of our interface into re-usable components. Knockout was pretty easy to pick up and once you got the hang of it made doing fairly complicated things quick and easy.

What do you dislike?

Knockout only solves half of the problem. If you create a bad UI or can't for your data properly, Knockout won't solve those issues. Sometimes, while debugging, I would grow frustrated with some of the errors and error messages. Often times these were due to my own poor logic, but it would take some time to trace down the proper issue.

Recommendations to others considering the product

If you want data binding without all of the extra overhead some other library's use then Knockout is for you. It's also a great idea for plugging in to an existing framework or application as you don't get a lot of extra bloat.

Knockout is easy to implement, easy to learn, and can introduce powerful data binding in the smallest or largest of applications.

What business problems are you solving with the product? What benefits have you realized?

We're trying to create web applications for dynamic data collection. This data needs to be collected out in the field using mobile devices. With Knockout, we're able to use the same business logic for both online and offline functionality by using a combination of appcache and indexdb, which means our users are able to have the same experience online and offline.

Knockout.js review by User in Information Technology and Services
User in Information Technology and Services
Validated Reviewer
Review Source

"Great and highly focused MVVM framework"

What do you like best?

Knockout.js is a great DOM manipulation and lightweight data model tool, just MVVM not less, not more.

Knockout.js is ideal for the experienced developer that do not need complex frameworks that handle initialisation cycle, routing, building and global project structure issues, you know how to do this your own or already have good libraries set.

On the other hand Knockout.js is good when you are not experienced front-end developer that just want some form logic to work smoothly and interactively or not have a lot of time to read 100 step tutorials.

Especially for those who love functional approach, Clojure, FRP and so on, Knockout provides computed and observables that is very convenient and powerful enough to build familiar computation pipeline with a very small amount of code and declarations.

Due to the knockout's focus on essential things, i don't think there will be moment when Knockout.js will gone "old", or "unfashioned" loosing some global holywar about most elegant MVVM implementation. Hammer that you are using every day is not about fashion and there is no superhacks or monstrous complexity inside to become old.

What do you dislike?

There are problems with placing DOM branch under overlapping knockout.js control that is already binded, so you can't easily attach some small model with templates into existing view.

Fortunately this problem always completely gone with migration to the web components introduced in v3.0.

Web components have require.js support, but it's nominal.

Performance is good but you should be aware that for all MVVM framework model state changes should be throttled and managed gently when you using a lot of entities or making projects for the mobile devices.

And it's a little bit strange to see knockout evangelists talking about it mostly on MS С# conferences. Great offer to the wrong address :)

Recommendations to others considering the product

Just try it seeing and playing with examples http://knockoutjs.com/examples/

It will not take a lot of your time but could give you a powerful tool in your libraries arsenal.

What business problems are you solving with the product? What benefits have you realized?

Knockout.js was core JS library for all web front-end projects of our company. Including user profile, product licenses management, web-based remote access clients and so on.

Knockout.js review by <span>Luis P.</span>
Luis P.
Validated Reviewer
Verified Current User
Review Source

"Great library to simply bind the results of an ajax request or doing some client side functionality"

What do you like best?

Very straightforward, learning does not take that long, very easy to grasp if you are already familiar with the MVVM pattern it provides some nice separation of concerns

What do you dislike?

The html binding sintax is not that clean

Recommendations to others considering the product

Try it out, if you do not have experience with binding it will be a great library to start with

What business problems are you solving with the product? What benefits have you realized?

Web apps/sites that require some client side functionality

Knockout.js review by User in Computer Software
User in Computer Software
Validated Reviewer
Verified Current User
Review Source

"Knockout JS"

What do you like best?

The best thing about using knockout js is it's two way binding and rich user interface, knockout tables are easy and good to use.

What do you dislike?

It's knockout validation is pretty much confusing to implementation for mvvm model.

What business problems are you solving with the product? What benefits have you realized?

Asp.net core with knockout is used for building applications which need two way binding and it's really nice to use.

Knockout.js review by <span>Tyler W.</span>
Tyler W.
Validated Reviewer
Review Source

"A solid little data binding library"

What do you like best?

It's small and focused. It does one thing, and does it well.

What do you dislike?

Support for older browsers causes the syntax to be a little wacky. Also, some features are undocumented and you've got to pore through the source code to solve some problems.

Recommendations to others considering the product

Use it as a small data binding library and nothing else. There are better UI libraries and frameworks at the time of this writing.

What business problems are you solving with the product? What benefits have you realized?

We are using it as a data-binding library, and it solves that well.

Knockout.js review by User in Computer Software
User in Computer Software
Validated Reviewer
Review Source

"Knockout.js review by a full stack developer"

What do you like best?

Knockout is simple, declarative, lightweight, and fast. It's an MVVM data binding library, not a framework and it does its job very well. I enjoy the push to separate concerns and make the UI data driven. It's a very active open source project and has greate browser compatibility.

What do you dislike?

With simplicity you get what you signed up for. I don't really dislike anything about knockout itself, but some people may see the fact that you will need other libraries/frameworks to build an enterprise server side data driven application.

Recommendations to others considering the product

Read the docs, it covers almost anything you need.

What business problems are you solving with the product? What benefits have you realized?

I'm building mobile/tablet/desktop web applications for personal and professional project. Knockout is easy to get started with and makes prototyping simple.

Knockout.js review by <span>John D.</span>
John D.
Validated Reviewer
Review Source

"I use knockout js as the main javascrpt library for all of my web application projects."

What do you like best?

I love the concept of observable and being able to seamlessly bind them to any html element.

What do you dislike?

It can be very confusing to apply bindings from multiple knockout view models at the same time.

What business problems are you solving with the product? What benefits have you realized?

fast and responsive UI that is bound directly to custom view models that match my database models. This makes it really nice to load and save data from my database into the knockout view models.

Knockout.js review by <span>Roberto C.</span>
Roberto C.
Validated Reviewer
Review Source

"Excellent data binding framework"

What do you like best?

It does one thing and does it right. Which is databinding.

What do you dislike?

That is not so popular as react and doesn't support all things as angular.

Recommendations to others considering the product

If you are a Microsoft shop, It could be an option for front end development since Microsoft still supports it.

What business problems are you solving with the product? What benefits have you realized?

HTML and JavaScript are the programming languages to learn front end development. KnockoutJS definetively helps with best practices using data binding.

Knockout.js review by <span>Nathan W.</span>
Nathan W.
Validated Reviewer
Review Source

"I've used KnockoutJS professionally for several years"

What do you like best?

I like the focus on once core concept: observables

What do you dislike?

Knockout has become dated: It's tried to keep up by adding features like components, but it's fighting against it's own design in order to do so.

What business problems are you solving with the product? What benefits have you realized?

Front-end development. Better, more maintainable front-ends.

Knockout.js review by <span>Suleman A.</span>
Suleman A.
Validated Reviewer
Review Source

"I am Sr. Software Engineer, working in Web technologies."

What do you like best?

Simple binding, very interactive to enhance user experience. :)

What do you dislike?

To test in multiple browsers and specially to handle in old IE stuff!! :(

What business problems are you solving with the product? What benefits have you realized?

To provide instructions to users while reset/typing password!!

Knockout.js review by Consultant in Computer Software
Consultant in Computer Software
Validated Reviewer
Review Source
Business partner of the vendor or vendor's competitor, not included in G2 Crowd scores.

"Better frameworks available"

What do you like best?

Powerful template based bindings make it easy to do quick data-binding.

What do you dislike?

Annoying to wrap all types in ko.observable.

No idea how to use with ES6

Data binding probably too complicated for large app

Error in binding syntax difficult to debug

React's single direction data flow easier to understand

What business problems are you solving with the product? What benefits have you realized?

Can be used to build software if you stick rigidly to conventions

Knockout.js review by User in Computer Software
User in Computer Software
Validated Reviewer
Review Source

"Knockout.js is fun to use"

What do you like best?

Data binding is really nice. Knockout components are awesome.

What do you dislike?

It's not really a framework so there's no defined coding patterns you have to follow. It's easy to do the same thing quite differently.

What business problems are you solving with the product? What benefits have you realized?

We use Knockout on a modern web application. Knockout components are used extensively.

Knockout.js review by User in Information Technology and Services
User in Information Technology and Services
Validated Reviewer
Review Source

"Easy and powerful"

What do you like best?

Good examples and tutorials in official website and other websites.

What do you dislike?

At first it looked confusing. But it was my first experience with MVVC.

Recommendations to others considering the product

Read documentation and try some tutorials before fully going in.

What business problems are you solving with the product? What benefits have you realized?

Making ASP.NET MVC website more responsive and more user friendly

Kate from G2 Crowd

Learning about Knockout.js?

I can help.
* We monitor all Knockout.js reviews to prevent fraudulent reviews and keep review quality high. We do not post reviews by company employees or direct competitors. Validated reviews require the user to submit a screenshot of the product containing their user ID, in order to verify a user is an actual user of the product.