Javascript MVC 框架 + jQuery Mobile

Posted

技术标签:

【中文标题】Javascript MVC 框架 + jQuery Mobile【英文标题】:Javascript MVC framework + jQuery Mobile 【发布时间】:2012-03-15 23:22:06 【问题描述】:

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

我想将 jQuery Mobile 用于移动优化的 UX,包括列表视图、触摸输入(例如滑动以编辑项目)等(请注意,我考虑过只使用 UI 框架,例如 Twitter Bootstrap或 Foundation,但我会从 jQuery Mobile 支持的更深入的移动优化用户体验中受益匪浅。)

我还想使用 javascript MVC 框架来更好地构建我的 Javascript 代码。我已经使用了一些框架,但没有深入使用它们中的任何一个,并且仍在争论最终的选择。

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

除了移动设备,我更喜欢基于数据绑定的框架,例如 Knockout、Ember、Angular 或 Batman(事实上,根据我最初的实验,我非常喜欢 Batman),它会在运行时自动更新 UI模型层变化。但是,我可以看到这与 jQuery Mobile 冲突,后者也对 DOM 进行了重大更改,还想要拥有位置哈希等。

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

或者也许有一种混合方法,其中基于数据绑定的 MVC 框架用于桌面版本中的所有内容,并且在移动版本中以某种方式将视图层换成了 jQuery Mobile,仍然利用模型层和控制器层?

对基于数据绑定的 MVC 框架之一有帮助吗?背包或脊椎有什么好运吗?你会推荐它们吗?还有其他推荐吗?

我意识到这个问题有点开放式,没有一个正确的答案,但我觉得这仍然是 *** 的合适问题。

【问题讨论】:

【参考方案1】:

既然你这么久没有回答,我只能对两个框架投一票

Backbone.js 是经典的,强大的社区

但是从设计的角度来看,我最喜欢的是 Ember。 Ember.js 的目标之一是让您可以轻松集成您已经在使用的工具,您会在其文档的一些示例中看到提到的 jquery 函数。

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

请注意,如果实现更好的抽象,Ember 确实会牺牲一点性能。我通常赞成这样做。

【讨论】:

感谢您的回复。我有一段时间没有从事这个项目了,所以还没有选择最终的堆栈。我确信 Ember.js 可以工作,但我仍然有点怀疑它可能不是与 jQuery Mobile 的完美结合。此外,性能可能是移动设备的问题。现在我倾向于使用 Spine(我相信 Backbone 也可以)。 嗨米尔科。有许多库并非旨在与其他库很好地配合使用。我听到很多人称赞 Ember,因为它与 jQuery 配合得很好,比 Backbone 更好。在您使用 Javascript 搜索 MVC 时,请注意您会看到许多微框架。 Backbone 是后者,轻巧高效。像 Ember 这样的其他人试图成为一个专注于一个问题的完整解决方案。它的性能稍差(有充分的理由),我还没有听说它在移动环境中的适用程度。【参考方案2】:

如果您担心性能,我建议您使用Backbone,因为它不是一个全栈框架,这意味着与其他全栈框架相比它可以相当快

【讨论】:

以上是关于Javascript MVC 框架 + jQuery Mobile的主要内容,如果未能解决你的问题,请参考以下文章

Javascript MVC 框架和服务器端框架

jQuery了解

javascript:12种JavaScript MVC框架之比较

Javascript MVC框架的目的[关闭]

何时实现 javascript MVC 框架

javascript 【ver2】可视范囲に入ってたらfadeIn※要jQuer