#web-component
#веб-компонент
Вопрос:
Я хотел бы создать веб-компонент, который представляет собой поле со списком автозаполнения, но поскольку такого понятия изначально не существует, считается ли плохой практикой создание веб-компонента, который также зависит от сторонней библиотеки или библиотек?
У меня было лишь небольшое участие в Polymer год назад, и теперь, когда вышла версия v1 спецификации, я снова смотрю на них. Мне кажется, что большинство людей разрабатывают веб-компоненты, которые на 100% являются простым javascript без внешних зависимостей, но, учитывая состояние доступных элементов управления пользовательского интерфейса, это сделало бы некоторые компоненты очень простыми.
Комментарии:
1. конечно, вы можете использовать внешнюю зависимость для разработки собственного веб-компонента.
2. Значит, нормально иметь веб-компонент, который также ожидает, что вы добавите дополнительные ссылки на скрипт на свою веб-страницу, прежде чем он заработает? Это не противоречит назначению веб-компонентов?
3. Да, существует множество веб-компонентов, которые являются просто оболочками для существующих библиотек
Ответ №1:
Есть два способа справиться с этим. ОК. Может быть больше, но я покажу два.
1) Полагайтесь на импорт ES6, а затем ваши компоненты просто используют `импортировать что-то из». /somefile.js «. Да, вам нужно будет предоставить как компонент, так и библиотеку или сослаться на библиотеку, которая поддерживает импорт ES6. Но это предотвращает удвоение кода.
2) Упакуйте свои компоненты с их зависимостями. Некоторые люди используют такие вещи, как Webpack, но я чувствовал, что это заходит слишком далеко, поэтому я создал component-build-tools, чтобы вы могли писать свои компоненты с помощью import
, а затем объединять части компонентов в один файл. Это позволяет загружать компоненты в любой браузер, даже если они не поддерживаются import
. Ограничение здесь заключается в том, что вам необходимо загружать объединенные файлы компонентов в правильном порядке. Для большинства проектов это не сложно, но это то, чем вам нужно управлять.