JavaScript MVC框架+jQuery Mobile

10

我正在构建一个(相当简单的)Web应用程序,最终将在桌面和移动设备上平等使用。我在后端使用Rails,但实际应用程序将作为单页应用程序构建,因此Rails将简单地提供初始前端资产并充当REST后端。

我想使用jQuery Mobile来进行移动优化的UX设计,包括列表视图,触摸输入(例如滑动以编辑项目)等。(请注意,我已考虑过只使用如Twitter Bootstrap或Foundation之类的UI框架,但我非常需要jQuery Mobile带来更深层次的移动优化UX。)

我还想使用JavaScript MVC框架来更好地组织我的JavaScript代码。我已经试用了几个框架,但没有深入使用过任何一个,仍在考虑最终选择。

我的主要问题是这些MVC(或MVVM)框架中哪些已被证明可以与jQuery Mobile很好地配合使用。

离开移动设备不谈,我的强烈偏好是基于数据绑定的框架,如Knockout、Ember、Angular或Batman(事实上,根据我的初步试验,我相当喜欢Batman),它会在模型层更改时自动更新UI。然而,我可以看到这可能与jQuery Mobile冲突,因为它也会对DOM进行重大更改,也想拥有位置哈希等。

另一种选择是使用较低级别的框架,如Backpack或Spine。我想路由层仍然会引起冲突,但至少我可以使用模型、控制器和视图层(特别是REST持久化)。

或者,可能存在混合方法,在桌面版本中使用基于数据绑定的MVC框架处理所有事情,并在移动版本中以某种方式替换视图层为jQuery Mobile,仍然利用模型和控制器层?

有没有使用基于数据绑定的MVC框架的成功经验?有没有背包或脊椎的好运?它们中的任何一个都足够与jQuery Mobile很好地配合使用,您会推荐它们吗?还有其他建议吗?

我意识到这个问题有些没有明确答案,但我觉得这仍然是一个适合在Stackoverflow上问的问题。

2个回答

2

由于你等了这么久都没有答案,我只能用我的投票来为两个框架做贡献。

Backbone.js 是经典框架之一,社区强大。

不过,从设计角度来看,我最喜欢的是Ember。 Ember.js 的目标之一是使集成您已经使用的工具变得微不足道,并且在文档的某些示例中会提到jQuery函数。

我不确定 jQuery Mobile 是否好用,我主要使用普通的 jQuery,但目前看起来还不错。

请注意,为了实现更好的抽象化,Ember 可能会牺牲一点性能。我通常更喜欢这种方法。


感谢您的回复。我已经有一段时间没有在这个项目上工作了,所以还没有选择最终的技术栈。我相信Ember.js可以被用来工作,但我仍然稍微怀疑它可能不是与jQuery Mobile完美结合的最佳选择。此外,性能对于移动端可能会成为一个问题。现在我倾向于使用Spine(我相信Backbone也可以)。 - Mirko Froehlich
嗨,Mirko。有许多库不是为了与其他库良好协作而设计的。我听说很多人赞扬Ember,因为它与jQuery的协作比Backbone更好。在寻找JavaScript MVC时,请注意您会看到许多微框架。Backbone是后者,轻巧高效。其他像Ember这样的框架则试图成为一个专注于一个问题的完整解决方案。它的性能略差(有充分的理由),我没有听说它在移动环境中适用情况如何。 - SystematicFrank

1
如果您关心性能,我建议您选择Backbone,因为它不是一个全栈框架,这意味着与其他全栈框架相比,它可以非常快速。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接