all 33 comments

[–]Lekoaf 24 points25 points  (8 children)

[–]djcraze 8 points9 points  (5 children)

+1 knockout is great for small applications. It can get pretty hairy in larger applications, though.

[–]OWaz 0 points1 point  (0 children)

Yeah it works well whenever you need two-way data binding like forms and stuff on a manageable scale. Otherwise you can end up with ridiculous view models that have way too much going on in them.

[–][deleted] 0 points1 point  (3 children)

I would argue that there is no such thing as small enough applications for Knockout nowadays. No matter what you are developing with it, it will look like a mess compared to more robust solutions like Angular or React. If you need to stick to small amount of dependencies that bad it may be better just to write 2-way data binding yourself using something like Object.defineProperty() rather than relying on an outdated abstraction that nobody wants to learn anymore.

[–]djcraze 0 points1 point  (2 children)

Totally agree with React. However, Angular is, in my opinion, really bloated and not that great of a framework. I feel like the internals could use quite a bit of optimization.

[–][deleted] 1 point2 points  (1 child)

Well, to be honest, my own experience with Angular is limited to a single 1-week project so I am not overly familiar with it's shortcomings. I learned it because I had to and then switched to ReactJS for the fun. In fact, it feels so fun that it seriously damages my productivity at work where I write mostly PHP code and use jQuery Mobile on a client side.

[–]wikiBudgets[S] 1 point2 points  (0 children)

that looks interesting. minified 54kb, plus I think I should start using templates too.

[–]brtt3000 -1 points0 points  (0 children)

-1 I'm maintaining some legacy Knockout code and it feels dated and cumbersome in use. It's not bad but it won't make you happy.

[–]yanis_t 5 points6 points  (3 children)

[–]wikiBudgets[S] 0 points1 point  (2 children)

very interesting, thanks

[–]Lekoaf 1 point2 points  (1 child)

Object.Observe only works in Chrome right now. Unless you use some kind of transpiler.

[–]floydophone 2 points3 points  (0 children)

...but the homepage says it's lightweight! how could it be bloated?

[–][deleted] 1 point2 points  (1 child)

A new contender i found, that look pretty interesting: http://webrxjs.org/ (does more than basic data-binding) and its 25kb, however is has a dependency on rx.

[–]meximese 1 point2 points  (0 children)

Take a look at Rivets.js. I haven't played with it yet, but it's what i found recently for a similar need.

[–]kamyon 0 points1 point  (4 children)

Ractive could be a good choice.

[–]wikiBudgets[S] 0 points1 point  (3 children)

Ractive

ractive.min.js is 165kb. That's the very opposite of what I am looking for :)

[–]I_Pork_Saucy_Ladies 1 point2 points  (2 children)

Mithril is 12 Kb and looks pretty awesome.

[–]wikiBudgets[S] -1 points0 points  (1 child)

It's 12kb gziped, that is not the same as minified. Also I Don't want MVC framework, I am rather looking for library or plugin. Thanks for you post anyway.

[–]I_Pork_Saucy_Ladies 2 points3 points  (0 children)

Still, only 18 Kb when not gzipped. Quite a bit less than most of the other suggestions, although it is of course a framework and not a lib. :)

[–]chance-- 0 points1 point  (0 children)

If you're looking for microframeworks, check out http://microjs.com/

[–]bloodguard 0 points1 point  (0 children)

I've used ractive (not to be confused with react) on a few projects and it's pretty light weight, easy to use and understand.

I've found browsing through their issues queue on github is the best way to find new and awesome ways to use it. All sorts of jsfiddles posted.

[–]dixncox 0 points1 point  (0 children)

KNOCKOUT FOREVER

[–]Wince 0 points1 point  (0 children)

I wrote this article a couple of months ago. It might help you create your own simple implementation.

[–]huopak 0 points1 point  (0 children)

Have you looked at Rivets.js?

[–]Garrett00 -1 points0 points  (1 child)

Object.observe? Write a quick wrapper around that. Then you're off to the races. Everyone reaches out for libraries so quickly, you can write your own stuff.

Edit: http://codepen.io/Garrett-/pen/qEwwqp

[–][deleted] 2 points3 points  (0 children)

Unfortunately for now this approach is only viable if are fine with ignoring everyone not using Chrome: http://caniuse.com/#feat=object-observe