我应该在 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 小部件上使用啥命名空间?的主要内容,如果未能解决你的问题,请参考以下文章

使用命名空间调用 jquery

我应该使用啥颤振小部件? (向左滑动一页)

实现自定义 Gtkmm 小部件:我应该在虚拟 on_* 函数中返回啥?

为啥我用小写字母命名小部件类后,qt-creator 无法构建?

如何知道是啥触发了我的 Flutter 小部件重建

Qt 小部件的命名约定