jQueryウィジェット、_createまたは_init
-
09-10-2019 - |
質問
一部のjQueryプラグインはウィジェットの使用を拡張します_createメソッド、他のものは_initメソッドを使用しますが、誰かが2つの違いを説明できますか?
また、ウィジェットを拡張するか、jquery.fnを直接拡張する方が良いときのガイダンスもありますか?
解決
($ .fnとは対照的に)ウィジェットを拡張するための欠点は、ウィジェット「クラス」を定義するjQuery-UIに依存することです。その依存関係は、jquery-uiも使用していないプラグインのユーザーにとって高価になる可能性があります。
_create vs _initが行く限り、_initが最初に来て、最近の改訂で紹介し、_createを支持したと確信しています。私はこれについて間違っているかもしれませんが、_initはまだサポートされていると信じています。もしそうなら、2つの間に違いはないはずです。
他のヒント
から jQuery UI開発者ガイド:
要素が作成されると、最初のパラメーターが文字列でないウィジェット名の他のすべての呼び出しは_init()メソッドを呼び出します。オプションが渡された場合、_init()メソッドの前に.option()メソッドが呼び出されます
ウィジェットには3つのフェーズがあります。
+-------+----------------+---------------+--------------------------------------------------------------------------------------------+
| Phase | Name | jQuery Method | Description |
+-------+----------------+---------------+--------------------------------------------------------------------------------------------+
| 1 | Creation | _create | First time the widget is applied to an element, it is called. |
| 2 | Initialization | _int | The _init method is called after _create when the widget is first applied to its elements. |
| 3 | Destruction | destroy | The widget's destroy method is used to detach a widget from an element. |
+-------+----------------+---------------+--------------------------------------------------------------------------------------------+
ノート: :アンダースコアから始まるメソッド名は、大会ごとにプライベートであることを意図しています。
そのため、違いがあります _create
と _init
. 。 1つは作成に使用され、もう1つは初期化に使用されます。引数がないかオプションが付いているウィジェットを呼び出すたびに、間接的に呼び出します _init
方法。したがって、これは使用できます リセット (再独立性)ウィジェットまたは渡されるオプションを渡します。
各フェーズの詳細 ここ.