我发现这是一个很好的讨论,讨论了尝试在 Knockout 网站上“不引人注目”的利弊。
传统上,我非常赞成让 Javascript 尽可能不显眼,并且通过我的 Knockout 表达式,我尝试通过将任何繁重的工作转移到我的视图模型上的函数并创建封装 DOM 的自定义绑定来尽可能地保持它们最小和整洁逻辑 - 但我坚信声明性方法本身(例如使用 data-bind 属性的默认值),当合理使用时,是要走的路。
可能是因为我对 Knockout 的介绍是我工作的 WPF 应用程序的 Web 应用程序“端口”,当我了解更多关于如何优雅地利用 Knockout 时,我的网站的 Knockout 绑定变得惊人地接近它们的 XAML 等效项。我只是喜欢能够通过眼球标记一目了然地看到围绕如何评估视图的真实业务逻辑,而不是 jQuery 或任何物理构建它以响应在一个大灵魂中破坏 Javascript 的一些点击事件的具体细节文件。
当我重新访问我的一些传统 MVC 站点时,这些站点利用大量程序 jQuery 来连接事物,我认为,是的,标记很整洁,但是在 6 个月后回到它,即使我很难理解我对所有这些 jQuery 的意图是什么选择器、回调和 DOM 遍历。我想我只会在必要时动态地应用 Knockout 绑定本身,即如果存在我的绑定逻辑本身是动态的情况 - 但无论如何,这可能通过动态模板以不同的方式完成。
这是我对您问题的不显眼方面的 2 美分,如果您在过去几个月中迁移到 MVVM Javascript 的经历与我的类似,那么您将不会回头。