Я хотел бы создать веб-компонент, который представляет собой поле со списком с автоматическим заполнением, но, поскольку изначально такой вещи нет, считается ли плохой практикой создание веб-компонента, который также зависит от сторонней библиотеки или библиотек?
Год назад я имел небольшое отношение к Polymer, и теперь, когда вышла версия 1 спецификации, я снова смотрю на них. Мне кажется, что большинство людей разрабатывают веб-компоненты, которые на 100% представляют собой простой javascript без внешних зависимостей, но, учитывая состояние доступных элементов управления пользовательского интерфейса, это сделало бы некоторые очень простые компоненты Джейн.
Итак, нормально иметь веб-компонент, который также ожидает, что вы добавите дополнительные ссылки на скрипты на свою веб-страницу, прежде чем он заработает? Это не противоречит назначению веб-компонентов?
Да, это множество веб-компонентов, которые являются просто оболочками для существующих библиотек.
Есть два способа справиться с этим. OK. Может и больше, но я покажу два.
1) Положитесь на импорт ES6, а затем ваши компоненты просто используют «импортировать что-то из»./somefile.js». Да, вам нужно будет предоставить как компонент, так и библиотеку или указать ссылку на библиотеку, которая поддерживает импорт ES6. Но это предотвращает дублирование вверх код.
2) Упакуйте свои компоненты с их зависимостями. Некоторые люди используют такие вещи, как Webpack, но я чувствовал, что это заходит слишком далеко, поэтому я создал инструменты сборки компонентов, чтобы вы могли писать свои компоненты, используя import
, но затем объединяя части компонентов в один файл. Это позволяет загружать компоненты в любом браузере, даже если они не поддерживают import
. Ограничение здесь заключается в том, что вам необходимо загружать объединенные файлы компонентов в правильном порядке. Для большинства проектов это несложно, но этим нужно управлять.
конечно, вы можете использовать внешнюю зависимость для разработки собственного веб-компонента.