JQuery плагины против виджетов - PullRequest
24 голосов
/ 07 июня 2011

Несколько месяцев назад я начал несколько экспериментов с плагином jQuery. Я нашел некоторые учебники по Interenet, и я начал что-то собирать.
Пару дней назад у меня возникла необходимость создать собственный «плагин» и я вернулся к своему старому проекту. Пытаясь найти больше информации в Интернете, я наткнулся на эти новые «вещи», называемые виджетами.

Для того, что я понимаю, я должен забыть о плагинах и начать разработку виджетов. Являются ли плагины старой концепцией или все еще актуальны? Каков наилучший подход, если вам нужен пользовательский элемент управления jquery с интерфейсом?

Я широко использую jQuery UI.

Ответы [ 2 ]

27 голосов
/ 23 февраля 2014

У меня был эквивалентный вопрос, и я наткнулся на this (Документация jQuery):

Плагины без сохранения состояния и против Stateful

Большинство плагинов jQuery являютсялица без гражданства;они выполняют какое-то действие, и их работа выполнена.Например, если вы установите текст элемента с помощью .text( "hello" ), фаза настройки не будет, и результат всегда будет одинаковым.Для этих типов плагинов имеет смысл просто расширить прототип jQuery.

Однако, некоторые плагины имеют состояние;они имеют полный жизненный цикл, поддерживают состояние и реагируют на изменения.Эти плагины требуют много кода, предназначенного для инициализации и управления состоянием (а иногда и уничтожением).Это приводит к большому количеству шаблонов для создания плагинов с состоянием.Хуже того, каждый автор плагина может управлять жизненными циклами и указывать их по-разному, что приводит к различным стилям API для разных плагинов.Фабрика виджетов нацелена на решение обеих проблем, устраняя шаблон и создавая согласованный API для плагинов.

Согласованный API

Фабрика виджетов определяет, как создавать и уничтожать виджеты, получать и устанавливать параметры,вызывать методы и прослушивать события, запускаемые виджетом.Используя фабрику виджетов для создания ваших плагинов с отслеживанием состояния, вы автоматически соответствуете определенному стандарту, что облегчает новым пользователям использование ваших плагинов.В дополнение к определению интерфейса, фабрика виджетов также реализует большую часть этой функциональности для вас.(...)

Настройка параметров при инициализации

Всякий раз, когда вы создаете плагин, который принимает параметры, вы должны определить значения по умолчанию для максимально возможного количества параметров, а затем объединить предоставленные пользователем параметры спо умолчанию при инициализации.(...) Фабрика виджетов предоставляет эту функциональность и даже продвигает ее немного дальше.

Я публикую здесь ссылку на функцию, поскольку именно здесь я впервые ищу ответ!:)

23 голосов
/ 07 июня 2011

Вы можете написать jQuery плагин или jQuery UI виджет .

Зависит от того, что вы хотите сделать. Ни один из них не является устаревшим . Если вы напишите виджет, он будет зависеть от пользовательского интерфейса jQuery (и, конечно, от jQuery), если вы напишите плагин, он будет зависеть только от jQuery. На самом деле, это зависит от того, чего вы хотите достичь.

...