JQuery Widget, _create или _init
-
09-10-2019 - |
Вопрос
Некоторые плагин jQuery расширяют виджет, используют метод _create, в то время как другие используют метод _init, может кто-то объяснить различия между двумя?
Также любое руководство, когда лучше расширить виджет или напрямую расширить jquery.fn?
Решение
Недостатком к расширению виджета (в отличие от $ .FN) состоит в том, что вы создаете зависимость на jQuery-ui, который определяет виджет «класс». Эта зависимость может быть дорогой для пользователей вашего плагина, который также не использует jQuery-ui.
Насколько _Create VS _init идет, я уверен, что _init пришел первым, а затем в недавнем ревизии, который они ввели и одолжите _create. Я мог бы ошибаться об этом, но я верю, что _init все еще поддерживается. Если это тогда между ними не должно быть никаких различий.
Другие советы
От Руководство разработчика JQuery UI:
Как только элемент создан, все остальные вызовы на имя виджета, где первый параметр не является строкой, позвонит методу _init (); Если параметры будут переданы, метод .Option () будет вызываться перед методом _init ()
Виджет имеет три фазы:
+-------+----------------+---------------+--------------------------------------------------------------------------------------------+
| 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
. Отказ Один используется для создания, а другой используется для инициализации. Каждый раз, когда вы называете виджет без аргументов или с вариантами, он косвенно позвонит _init
метод. Следовательно, это может быть использовано для перезагрузить (повторно инициализировать) виджет или пропустите его разные варианты.
Подробнее о каждой фазе здесь.