Разработка веб-компонентов с внешними зависимостями?

#web-component

#веб-компонент

Вопрос:

Я хотел бы создать веб-компонент, который представляет собой поле со списком автозаполнения, но поскольку такого понятия изначально не существует, считается ли плохой практикой создание веб-компонента, который также зависит от сторонней библиотеки или библиотек?

У меня было лишь небольшое участие в Polymer год назад, и теперь, когда вышла версия v1 спецификации, я снова смотрю на них. Мне кажется, что большинство людей разрабатывают веб-компоненты, которые на 100% являются простым javascript без внешних зависимостей, но, учитывая состояние доступных элементов управления пользовательского интерфейса, это сделало бы некоторые компоненты очень простыми.

Комментарии:

1. конечно, вы можете использовать внешнюю зависимость для разработки собственного веб-компонента.

2. Значит, нормально иметь веб-компонент, который также ожидает, что вы добавите дополнительные ссылки на скрипт на свою веб-страницу, прежде чем он заработает? Это не противоречит назначению веб-компонентов?

3. Да, существует множество веб-компонентов, которые являются просто оболочками для существующих библиотек

Ответ №1:

Есть два способа справиться с этим. ОК. Может быть больше, но я покажу два.

1) Полагайтесь на импорт ES6, а затем ваши компоненты просто используют `импортировать что-то из». /somefile.js «. Да, вам нужно будет предоставить как компонент, так и библиотеку или сослаться на библиотеку, которая поддерживает импорт ES6. Но это предотвращает удвоение кода.

2) Упакуйте свои компоненты с их зависимостями. Некоторые люди используют такие вещи, как Webpack, но я чувствовал, что это заходит слишком далеко, поэтому я создал component-build-tools, чтобы вы могли писать свои компоненты с помощью import , а затем объединять части компонентов в один файл. Это позволяет загружать компоненты в любой браузер, даже если они не поддерживаются import . Ограничение здесь заключается в том, что вам необходимо загружать объединенные файлы компонентов в правильном порядке. Для большинства проектов это не сложно, но это то, чем вам нужно управлять.