4 ms·
For those writing substantial client-side JS apps (rather than sprinkling jQuery here and there), a client-side MVC framework is definitely the way to go. Embe
by Torn 14y ago
For those writing substantial client-side JS apps (rather than sprinkling jQuery here and there), a client-side MVC framework is definitely the way to go.
EmberJS has however gotten a lot of flack recently regarding its docs, learning curve, and lack of API stability.
The following hn link compares Angular, CanJS, Backbone and Ember: https://news.ycombinator.com/item?id=5563223 https://news.ycombinator.com/item?id=5563223 and would be a useful resource when picking a framework.
We're using Backbone to write a client-side widget / look and feel library, with a bunch of Models and Views out of the box to help application developers write rich web apps. Backbone has worked out great so far, but we've had to take decisions on a fair amount of things and put the groundwork in for things like dust templates, nested views, etc.
Things like Angular, CanJS, Ember, make these decisions for you and can definitely save time, if you're happy with their way of doing things.
That said, we don't have View Bindings / Two-way bindings built in, we have to use Backbone Event's listenTo manually. It's worked ok for us so far, especially when you have multiple views on the same model that need to do different things when the model changes.
- johnernaut 14y agoI recently finished building a large-scale app out in Backbone. It was a joy at first - I knew I needed a flexible framework that would work with the non-conventional UI that I was to produce and Backbone worked out perfectly. After reaching 45+ models and hundreds of view files (along with custom 'controller', 'presenter' and a long chain of inheritance objects that I had to produce if I didn't want to go insane), I'm finding the app to be a bit un-manageable at this point. Another thing that's a huge pain with Backbone is it's router. The custom matching implementation for segments that was recently added is nice - but it doesn't work well at all with extremely dynamic URL's requiring tons of filtering options as query parameters (actually, there isn't any JS framework that I've seen handle that use-case well). I'm currently in the process of re-building the same app out in Ember - it's going well so far, but I have a feeling I'm going to start pulling my hair out when I get to the more complex pages.
- HarshaThota 14y ago> That said, we don't have View Bindings / Two-way bindings built in, we have to use Backbone Event's listenTo manually. It's worked ok for us so far, especially when you have multiple views on the same model that need to do different things when the model changes. Knockback.js (http://kmalakoff.github.io/knockback/ http://kmalakoff.github.io/knockback/) may help with that.
- Torn 14y agoThanks, I'll look into that.