我在阅读某人的代码时遇到了 Knockout 和 MVVM。我对这两个主题都做了一些阅读,但我仍然对它们真正解决的问题感到困惑,很可能是因为我还没有构建足够大的应用程序来解决这个框架/架构解决的问题。
我花了一些时间来理解这个示例代码——http://knockoutjs.com/img/homepage-example.png——来自淘汰赛主页。我希望有人可以向我解释,如果不使用 Knockout,相同的代码会是什么样子,以及这会如何出现问题。
(SO可能不是解决这个问题的正确平台,所以请告诉我是否有其他更合适的交易所)。
Thanks!
从 10,000 英尺起
Knockout 提供了数据之间的双向绑定view用 HTML 编写,以及相应的属性和函数视图模型用 JavaScript 编写。
假设您有一个名为的 HTML 视图联系人.html和一个名为的 JavaScript 视图模型联系人.js。这两个人在一起将构成一个module,而淘汰赛将是将它们粘合在一起的粘合剂。
MVVM 代表模型视图视图模型。我在上面谈到了后两个。这model只是您世界中某个特定角落的 JavaScript 表示,例如,在本例中,Contact.
因此,将上述内容结合起来,我们可能会(就目录结构而言):
- 模型\contact.js
- 视图\contact.html
- viewmodels\contact.js
您可以在视图模型中实例化模型,然后使用 Knockout 将视图绑定到视图模型。
MVVM 只是提供了一种分离关注点和最大化重用的好方法。作为重用的示例,您可以根据上下文将联系人视图绑定到许多不同的联系人视图模型。上下文可以是客户端设备的大小、用户的授权配置文件、应用程序的“社区”与“高级”版本等等。
通过改进来修改 MVVM 的任何组件都可以相对隔离地完成,而不会对整个应用程序产生不利影响。因此分离关注点的价值。
那有意义吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)