我一直在使用 knockoutjs 和 backbone 创建单页 JavaScript 应用程序。我使用 backbone 模型和 knockout View 模型,但我也有很多 UI 控件,我使用 jQuery UI 小部件工厂创建了这些控件。
我的问题是如何更好地构建我的 jQuery 小部件中的代码。像 knockout/backbone/ember 这样的框架可以很容易地在主应用程序中实现 MVC 类型模式,但是当涉及到小部件开发时,我最终会有一大堆输出和操作 DOM 元素的代码。我仍然可以测试它,因为 jquery 使查询 DOM 变得容易,但代码非常难看。理想情况下,我希望在我的小部件中也有一个 MVC 模式。
是否有任何旨在帮助解决此问题的库或框架?
最佳答案
简而言之:
- 尽可能将小部件保留为 MVC 的 View 部分。尽可能将数据委托(delegate)出去。
- 在编写您的小部件时,不要倾向于将它放在您的应用程序中。将小部件视为一个岛屿。
- 使用事件处理从小部件传出的数据。不要查询它。
- 使用"Tell, Don't ask"小部件中的模式以保持 Controller 清洁
理想情况下,JQuery 是整个应用程序的 MVC 模式的 V 部分。如果您需要在用户与小部件交互时保留和返回数据,那么事件处理就是您的最佳选择。使用 "Tell, don't ask"小部件中的开发模式,这样您就不必查询小部件的状态来做某事。这应该可以解决很多问题。
关于javascript - jQuery 小部件开发 - 我可以使用 MVC 模式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10192941/