Javascript 淘汰赛是否完全由事件驱动?

Javascript 淘汰赛是否完全由事件驱动?,javascript,jquery,.net,knockout.js,Javascript,Jquery,.net,Knockout.js,嗯,我基本上是在探索淘汰赛,了解它所提供的不同功能。我真的很喜欢模板和双向绑定以及一些观察。现在,我们公司最近在五月的模块中实施了它,但是关于它是如何由事件驱动的以及它是多么的美丽,有一个真正的大讨论 好吧,当他们认为它是非常事件驱动的时,他们会将它与JQuery对立起来。他们的论点是,在JQuery中,任何人都可以进入并将按钮的onClick绑定到任何地方,当没有将所有控件的所有事件保持在同一位置的标准时,有时会变得混乱,这会使代码难以管理 我的论点是,Jquery可能需要明确的代码管理来实现

嗯,我基本上是在探索淘汰赛,了解它所提供的不同功能。我真的很喜欢模板和双向绑定以及一些观察。现在,我们公司最近在五月的模块中实施了它,但是关于它是如何由事件驱动的以及它是多么的美丽,有一个真正的大讨论

好吧,当他们认为它是非常事件驱动的时,他们会将它与JQuery对立起来。他们的论点是,在JQuery中,任何人都可以进入并将按钮的onClick绑定到任何地方,当没有将所有控件的所有事件保持在同一位置的标准时,有时会变得混乱,这会使代码难以管理

我的论点是,Jquery可能需要明确的代码管理来实现这一点,但事件驱动编程不是唯一的吗?asp.net网页的代码已经落后多年了,而经典的asp和古老的JavaScript以及所有的OnClick事件又如何呢


我在这里遗漏了什么吗?

嗯,事情并不新鲜。。自从按钮控件出现以来,它就应该以这样或那样的方式出现。但区别在于事件的使用方式和可维护性

关于jQuery和Knockout,我认为这不是一个事件的问题,而是一个设计模式的问题。jQuery使用事件(是的,在某些实例中有更多代码),但它没有指定要使用的特定模式。另一方面,KnockoutJS引入了具有双向数据绑定的MVVM模式,这将为您提供编写复杂应用程序所需的结构

在我看来,使用模式肯定会提高代码的可维护性。您甚至可以用普通jQuery实现MVVM、MVC或MVP。但这需要付出更多的努力,因为jQuery并不是专门用来工作的。例如,如果您使用BackboneJS,它将允许您在MVC模式上组织代码,那么您可以使用jQuery进行事件绑定

每个库都有自己的位置,具体取决于用例。对于简单的单向事件处理,您可能不需要淘汰viewmodels,而只需要使用jQuery进行清理。但对于具有高双向消息传递的复杂UI,knockout将使用较少的代码完成一些事情

以其他场景为例。。。Knockout需要您用它的自定义属性篡改HTML。如果更改HTML不是您的选择怎么办?jQuery有一个更好的用例。根据用例使用jQuery、Knockout、主干或样板文件。。不仅仅是因为有人觉得很酷:)