mvvm - Sencha Touch 能否很好地适应 KnockoutJS 之类的 MVVM 模式?

标签 mvvm sencha-touch knockout.js web-applications

我目前正在 KnockoutJS 之上构建一个网络应用程序 - 真的,使用编程幸福!

我已经到了需要添加移动开发框架并且一直在考虑我的选择的阶段。

我目前倾向于使用 Sencha Touch,因为它的成熟度和我需要的独特插件。

我唯一担心的是 Sencha Touch 的 OO + 声明性 javascript 编码是否适合 MVVM 框架,例如 Knockout?

我的意思是 Knockout 利用了 View (HTML 页面)将通过数据绑定(bind)调用模型的概念。 ExtJS (Sencha Touch) 不会丰富 View ...相反,它希望所有 HTML 内容都以声明方式编写。

我在这里处理油和水吗?你有什么想法。

注意:我很想知道这两种不同的架构是否会很好地结合在一起。不太想听听 Sencha Touch 与其他框架的比较。

最佳答案

GluJS 为 ExtJS 3.x 和 4.x 提供 MVVM。 Sencha Touch 绑定(bind)正在筹备中。这些人还提供了一种简洁的规范(SVVM)方法。这些东西确实应该是 Sencha 核心代码库的一部分,ExtJS 4.x 类模型将是完美的契合,因为 4.x 可以为 GluJS 使用的两种方式绑定(bind)提供 Hook 。

DeftJS : 另一个很好的选择是DeftJS ;一个开源库,它为 Sencha ExtJS 和 Touch 添加了带有 ViewControllers 的 MVC(所以不是完整的 MVVM)。它还添加了控制反转 (IoC) 和 Promises/Deferreds,以实现更清晰的异步编码。

更新...

Sencha ExtJS 5.x 现在支持带有 View Models 的完整 MVVM,我们预计下一个主要版本...... Sencha Touch 3.x ......可能会做同样的事情。 ExtJS 5.x 也更新为包含与 Sencha Touch 相同的核心类和类模型,因此这使得 Touch 3.x 更有可能匹配与 ExtJS 5.x 相同的 View 模型。

KnockoutJS 做得很好,但这只是您需要的一部分。不利的一面是,您最终不得不去寻找所有丢失的部分,然后用手指交叉播放“如果可以的话,请给我版本”,明年“某人”仍会支持所有位。相比之下,Sencha API 提供了您在一个版本周期内构建和维护整个应用程序所需的大部分内容。查看 this blog post 下的标题“现代 Web 堆栈” .

关于mvvm - Sencha Touch 能否很好地适应 KnockoutJS 之类的 MVVM 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6845158/

相关文章:

c# - 如何为属性更改通知编写更少的样板?

wpf - MVVM WPF 问题

extjs - Sencha touch,移除传送带而不破坏元素

cordova - 如何确定应用程序是否使用移动 Web 框架编写?

javascript - KnockoutJS/jQuery UI 可排序冲突

knockout.js - 带有 "options"绑定(bind)的 Knockout 自定义绑定(bind)包装器

mvvm - 带有条件的 knockout 事件绑定(bind)

mvvm - 将信息从父 View 模型传递到 subview 模型的正确 MVVM 方法

sencha-touch - 在 Sencha Touch 中,是否可以将最后一个项目滑回到轮播的开头?

wpf - 是什么让 Visual Studio 的设计师参与设计时支持