簡體   English   中英

Knockout完全由事件驅動嗎?

[英]Is Knockout exclusively event driven?

好吧,我基本上是在探索淘汰賽,並了解它所提供的不同功能。 我真的很喜歡模板和雙向綁定與它的一些觀察。 現在,它已經在我們公司最近為may模塊實現了,但是關於事件驅動它是如何以及它是多么美麗有一個非常大的討論。

好吧,當他們認為它是由事件驅動時,他們會反對JQuery。 他們的論點是,在JQuery中,任何人都可以進入並在任何地方綁定按鈕onClick,當有沒有設置標准來保持所有控件在同一個地方的所有事件並且它使代碼難以管理時,它會變得混亂。

我的論點是,Jquery可能需要對代碼進行顯式管理才能實現這一目標,但事件驅動編程並不是排他性的? asp.net網頁擁有它的代碼背后多年以及如何使用古老的JavaScript及其所有OnClick事件的經典ASP?

我在這里錯過了什么嗎?

好事件不是新的..自從按鈕控件開始以來,它應該以某種方式存在。 但不同之處在於如何使用事件以及您可以如何維護。

在jQuery和Knockout上,我不認為這是事件的問題,而是設計模式的問題。 jQuery,使用事件(在某些情況下是更多代碼)但它沒有指定要使用的特定模式。 另一方面,KnockoutJS引入了具有雙向數據綁定的MVVM模式,這將為您提供編寫復雜應用程序所需的結構。

在我看來,使用模式肯定會增強代碼的可維護性。 您甚至可以使用普通的jQuery實現MVVM,MVC或MVP。 但這需要更多的努力,因為jQuery沒有專門用於此類工作。 例如,如果您使用BackboneJS,它將允許您在MVC模式上組織代碼,那么您可以使用jQuery進行事件綁定。

根據用例,每個庫都有自己的位置。 對於簡單的單向事件處理,您可能不需要淘汰視圖模型,但只需使用jQuery清理它。 但對於具有高雙向消息傳遞的復雜UI,淘汰賽將使用較少量的代碼執行操作。

同樣采取其他方案...... Knockout需要您使用自定義屬性來篡改HTML。 如果更改HTML不適合您,該怎么辦? jQuery有一個更好的用例。 根據用例使用jQuery,Knockout,Backbone或BoilerplateJS ..不僅僅是因為有人認為它很酷:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM