The term "single page app" is a misnomer in my opinion, because as you use 
"single page app" you see many pages. "Single page" just means it loads once in 
a single web server call, and then all subsequent interactions manipulate parts 
of the DOM and talk to an API on the back -end without reloading the page. 


You don't have to "hack your way" to build an app that you can click from 
page-to-page, you just have to know how to use the framework correctly.

If you use Backbone, check out http://marionettejs.com alongside it.

Angular and Ember are both relatively new (< 2 years old), and AFAIK there's a 
lot of active development going on. If you want to be on the bleeding edge and 
don't mind a steep learning curve, they are both worth learning. 

If you perhaps don't want to be on the bleeding edge and want to stick with 
Rails, perhaps now isn't the right time to learn Ember or Angular.

Backbone, while very powerful, requires more coding and without Marionette you 
have to wire up a lot of UI updates manually (Ember and Angular take a more 
declarative approach and you have to do less manual UI updating). Marionette 
eliminates some of that, but you still have a lot of code to write and test. 

I would classify all three as for experienced Javascript developers and 
wouldn't recommend any of them unless you had a solid foundation in the nuances 
and inner working of advanced Javascript (like scoping, event bubbling, and 
promises). 


On Jun 18, 2014, at 5:23 PM, learning_to_swim <asho...@gmail.com> wrote:

> I am building a multi-page rails web app and am struggling with finding a 
> good JavaScript framework to use. I could use jQuery for all the low-level 
> DOM manipulations but would like to benefit from the structure of a good 
> framework.
> 
> I am new to Rails/JavaScript and most of what I have seen 
> (Backbone/Ember/Angular) are really designed for Single Page Applications and 
> you will have to hack your way in to build a multi page web app (or at least 
> that is what I infer). I am looking for something that just works out of the 
> box without too much tinkering.
> 
> Any pointers are appreciated.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-talk+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/559C4A02-0B89-4F81-96A8-A4E6B8A744F2%40datatravels.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to