我应该在 jquery 小部件上使用啥命名空间?
Posted
技术标签:
【中文标题】我应该在 jquery 小部件上使用啥命名空间?【英文标题】:what should i use for namespace on jquery widgets?我应该在 jquery 小部件上使用什么命名空间? 【发布时间】:2012-04-08 07:28:59 【问题描述】:我正在阅读有关使用 jquery ui 小部件工厂创建插件的初学者文档。它需要一个命名的空格名称:
$.widget( 'dp.list',
我的问题是……你必须有一个命名空间吗?我的插件应该属于哪种命名空间有约定(桶)吗?某处有清单吗?或者我可以随便编一些我想要的东西吗?
【问题讨论】:
【参考方案1】:查看 jQuery UI 库是一个好的开始。这些名称非常直观且有意义。该名称表示将在小部件实例化时创建的 ui 小部件。
jQuery 小部件框架可以被视为模仿 OO 类功能的工具。
它为构建复杂的、有状态的插件提供了一个灵活的基础 具有一致的 API。它不仅是为插件设计的 jQuery UI 的一部分,但供需要的开发人员一般使用 创建面向对象的组件而不重新发明通用的 基础设施。 --http://wiki.jqueryui.com/w/page/12138135/Widget%20factory
如果您有多个模块并且想要避免冲突并提供有意义的分类,则命名空间可能是有意义的
$.widget('<module_name>.widgetName', ..prototype.. )
例如
$.widget('cart.paymentProcess', ) , $.widget('cart.shippingCalculator', )
$.widget('catalog.productReviews',), $.widget('catalog.productPricing',) etc
我还建议阅读这些有用的问题以了解 jQuery 小部件中的命名空间问题: JQuery UI: How to call a widget function with its namespace Extending jQueryUI widgets without conflicts
【讨论】:
在调用插件时无法使用命名空间时,命名空间如何帮助解决冲突?如果您将小部件命名为“cart.shippingCalculator”,您仍然可以在 jQuery 对象上将其称为“shippingCalculator”。【参考方案2】:命名空间是个人的。但是:
-
命名空间应该让你理解插件的“意义”
尽量不要使用“usethispluginforsearhthingsinsidethedom”之类的东西;)
【讨论】:
【参考方案3】:命名空间是您识别插件的方式。通常,您想使用一些词来轻松描述您的插件的功能,但要保持它相当独特。
通过描述您的插件,您可以简要地告诉用户他们期望该插件做什么,但如果名称很常见,您可能会遇到另一个同名的插件,这可能会导致一系列问题。
您也不想要一个没有描述它的创意名称,因为它不清楚插件的作用。
【讨论】:
以上是关于我应该在 jquery 小部件上使用啥命名空间?的主要内容,如果未能解决你的问题,请参考以下文章
实现自定义 Gtkmm 小部件:我应该在虚拟 on_* 函数中返回啥?