Веб-компоненты — это общий термин для набора собственных веб-API, которые позволяют разработчикам создавать повторно используемые настраиваемые элементы. Vue имеет отличную поддержку как для использования, так и для создания пользовательских элементов.

Главное преимущество веб-компонентов в том, что их можно использовать с любым фреймворком или даже без фреймворка.

В три простых шага давайте посмотрим, как мы можем создать веб-компонент из Vue SFC (однофайловый компонент).

1. Создать пользовательский элемент

Чтобы создать пользовательский элемент, мы используем defineCustomElement:

Вы могли заметить, что наш SFC использует специальный файл, заканчивающийся на .ce.vue.

Он встраивает теги <style> SFC в виде строк CSS и предоставляет их в параметрах стилей компонента.

Во время производственной сборки с настройкой инструментов по умолчанию <style> внутри SFC извлекаются и объединяются в один файл CSS. Но для пользовательского компонента теги <style> должны быть внедрены в теневой корень пользовательского элемента.

2. Зарегистрируйте пользовательский элемент в DOM

Далее мы можем зарегистрировать пользовательский элемент, используя метод define. После регистрации все теги <my-example> на странице впоследствии будут обновлены:

3. Используйте пользовательский элемент в своем HTML

Наконец, мы можем использовать наш пользовательский элемент в HTML:

Ознакомьтесь с документацией для получения более подробной информации о том, как это работает.

Кураторский контент Vue

📕 Гибридный рендеринг в Nuxt.js 3

vueschool.io

👉🏼 Nuxt 3 имеет множество вариантов рендеринга. Есть SSR, SSG, SPA…

👉🏻 В этой статье Даниэль разбирает каждый вариант.

📕 Руководство по автоматизированному тестированию в Vue с Cypress

blog.logrocket.com

👉🏻 В этой статье Пол учит нас, как тестировать отдельные компоненты Vue с помощью Cypress.

👉🏻 «Если вы используете Vue, Cypress — один из лучших инструментов для тестирования вашего приложения».

📹 Путь Vue к Vite

viteconf.org

👉🏻 Как поделился Хаокун в своем выступлении на ViteConf, не только скорость делает Vite привлекательным.

👉🏻 Слайды: https://docs.google.com...

Совет TypeScript: избегайте экспорта по умолчанию

Давайте сначала рассмотрим пример с экспортом по умолчанию с использованием export default:

А теперь тот же пример, но без экспорта по умолчанию:

Почему лучше?

🤜🏻 Улучшенная поддержка рефакторинга

🤜🏻 Защита от опечаток

🤜🏻 Улучшено встряхивание деревьев

🤜🏻 Автоматический импорт/дополнение

Кураторский контент для веб-разработки

📕 TypeScript на уровне типов

тип-уровень-typescript.com

👉🏻 Онлайн-курс, который поднимет ваши навыки TypeScript от среднего до продвинутого.

👉🏻 Это даст вам четкое представление об основах системы шрифтов и проведет вас через ее самые продвинутые функции.

📕 Поговорим о веб-компонентах

bradfrost.com

👉🏻 Брэд рассказывает, как веб-компоненты могут помочь в доставке библиотек компонентов системы дизайна и их совместимости с библиотеками и фреймворками JS.

📕 Toyota пострадала от утечки данных, случайно опубликовав секретный ключ на GitHub

блог.gitguardian.com

👉🏻 Toyota сообщила, что они случайно предоставили учетные данные, позволяющие получить доступ к данным клиентов в общедоступном репозитории GitHub в течение почти 5 лет.

🛠️ DevTools-X

github.com

👉🏻 Кросс-платформенная коллекция утилит для разработчиков, ориентированных в первую очередь на автономный режим, похожих на встроенные в Mac/Windows.

👉🏻 Включает утилиты для цвета, изображений, JSON, Regex, SQL и даже живую игровую площадку React.

🛠️ SurveyJS

surveyjs.io

👉🏻 Библиотека конструктора форм для создания многоязычных форм опросов на основе данных.

👉🏻 Он имеет «профессиональный» уровень и некоторые сопутствующие коммерческие услуги, но имеет базовую лицензию MIT.

🛠️ Day.js

day.js.org

👉🏻 Быстрая альтернатива Moment.js размером 2 КБ с таким же современным API.

Цитата недели