我正在构建一个(相当简单)的web应用程序,它最终将在桌面和移动设备上使用得相当一致。我在后端使用Rails,但实际的应用程序将作为单页应用程序构建,因此Rails将仅提供最初的前端资产并充当REST后端。Javascript MVC框架+ jQuery移动
我想使用jQuery Mobile进行移动优化用户体验,包括列表视图,触摸输入(例如滑动编辑项目)等。(请注意,我已经考虑过使用诸如Twitter之类的UI框架Bootstrap或Foundation,但我会从jQuery Mobile支持的更深入的移动优化UX中受益匪浅。)
我也想使用Javascript MVC框架来更好地构建我的Javascript代码。我已经玩过几个框架,但没有深入使用任何框架,并且仍在争论最终选择。
我的主要问题是这些MVC(或MVVM)框架中的哪一个已被证明与jQuery Mobile结合使用。除了移动设备之外,我的强烈偏好是基于数据绑定的框架,如Knockout,Ember,Angular或Batman(事实上,基于我的初始实验,我非常喜欢蝙蝠侠),它会在用户界面自动更新UI时模型层发生变化。然而,我可以看到这与jQuery Mobile相冲突,jQuery Mobile也对DOM做了重大更改,也想拥有位置哈希等。
另一种方法是使用较低级别的框架之一,例如Backpack或脊柱。我想路由层仍然会导致冲突,但我至少可以使用模型,控制器和视图层(尤其是REST持久性)。
或者也许有一种混合方法,其中基于数据绑定的MVC框架用于桌面版本的所有内容,并且视图层以某种方式在移动版本中替换为jQuery Mobile,仍然利用模型和控制器层?
任何运气与基于数据绑定的MVC框架之一?任何背包或脊椎运气?这些工作是否足够满足jQuery Mobile的需求?还有其他建议吗?
我意识到这个问题是有点开放式的,没有单一的正确答案,但我觉得这仍然是一个适合的问题Stackoverflow。
感谢您的回复。我有一段时间没有在这个项目上工作过,所以还没有选择最后一个栈。我确信Ember.js可以开始工作,但我仍然怀疑它可能不是与jQuery Mobile的完美结合。此外,性能可能是移动设备的一个问题。现在我倾向于使用Spine(我相信Backbone也会很好)。 – 2012-05-12 17:11:33
嗨米尔科。有许多图书馆不适合与其他人一起玩。我听到很多人赞扬Ember,因为它与jQuery搭配很好,比Backbone好。在使用Javascript搜索MVC时,请注意您会看到许多微观框架。骨干是后来者,轻巧高效。其他人喜欢Ember试图成为专注于一个问题的完整解决方案。它的表现稍差(出于一个很好的理由),我还没有听说过它适合移动环境。 – SystematicFrank 2012-05-21 10:48:25