BY: LUIS AVILES (@LUIXAVILES) Эксперт Google Developer в веб-технологиях и угловых
Использование мощных рамх и библиотек очень распространено в наши дни. Мы можем назвать угловые, отреагировать .js, Vue, Svelte, среди прочего.
Трудно представить создание веб-приложения без использования каких-либо из этих компонентов. Для этих вариантов компоненты многоразовые и настраиваются виджеты , они могут обеспечить пользовательское поведение и стиль, и они используются в качестве строительных блоков для приложения.
Можем ли мы поделиться компонентом между этими рамками? Краткий ответ: нет. Каждая рамка/библиотека имеет пользовательское определение API для создания компонентов, и они не взаимозаменяются друг с другом.
Литянство
Согласно официальному литенствию Сайт :
Litelement – это простой базовый класс для создания быстрых легких веб-компонентов, которые работают на любой веб-странице с любой структурой.
Это означает, что мы можем использовать парадигму OOP, используя JavaScript или еще лучше: Teadercript. Давайте объясним это следующими примерами.
Litelement и JavaScript
Чтобы создать свой первый пользовательский веб-компонент с помощью JavaScript, вам необходимо определить класс, который реализует внешний вид и функциональность следующим образом:
import { LitElement, html } from 'lit-element';
class HelloComponent extends LitElement {
static get properties() { // JavaScript way to define custom properties
return { name: { type: String } };
}
constructor() {
super();
this.name = 'Luis'; // Default value goes here.
}
render() { // Defines a template to be "rendered" as part of the component.
return html`Hello ${this.name}. Welcome to LitElement!`;
}
}
// Register as a custom element named
customElements.define('hello-component', MyElement);
Litelement и Tymdercript
Вместо этого вы можете использовать мощность Tymdercript, импортируя некоторые декораторы для записи вашего первого веб-компонента следующим образом:
import { LitElement, html, property, customElement } from 'lit-element';
@customElement('hello-component') //Decorator that register as a custom element named
export class HelloComponent extends LitElement {
@property({type: String}) name = 'Luis'; // You can assign the default value here.
render() { // Defines a template to be "rendered" as part of the component.
return html`Hello, ${this.name}. Welcome to LitElement!`;
}
}
Есть новый компонент для вашего проекта. Вы можете использовать его в ваших шаблонах файлов, как если бы он был новым участником VTML Vocabulary:
Хотите играть с последним примером? Просто увидите ниже или откройте редактор Stackblitz:
Встроенный контент: .html
Litelement поможет вам построить свои веб-компоненты, которые будут легко разделяться в вашей компании или организации, даже если вы работаете с разными каркасами JavaScript.
Создание вашего первого проекта
Итак, теперь вы думаете о запуске проекта и используете Litelement для создания вашего веб-приложения на основе веб-компонентов. Замечательно!
Вы можете начать проект с нуля:
- Вам нужно установить LitElement, используя
NPM I Lit-Element - Затем установите Tymdercript с помощью
NPM i typeyctry. - Как насчет создания
tsconfig.jsonфайл? - Любая система сборки, которую вы хотите добавить и настроить?
- Теперь вам нужно будет добавить Eslint и Красивее и следовать передовым опытам
- Продолжайте добавлять поддержку тестирования устройства и Карма
- Вы получаете точку …
Проектные леса
Вы покрыты Генератор проекта от Open-WC Инициатива, и вы можете создать свой первый проект с помощью Spacecript Contport и Common Tooling всего за несколько секунд:
Запустите Open-WC Генератор проекта:
npm init @open-wc # Select "Scaffold a new project" (What would you like to do today?) # Select "Application" (What would you like to scaffold?) # Mark/Select "Linting", "Testing", "Demoing" and "Building" (What would you like to add?) # Yes (Would you like to use TypeScript?) # Mark/Select "Testing", "Demoing" and "Building" (Would you like to scaffold examples files for?) # my-project (What is the tag name of your application/web component?) # Yes (Do you want to write this file structure to disk?) # Yes, with npm (Do you want to install dependencies?)
У вас будет этот вывод:
Следующая структура проекта будет сгенерирована:
./ ├── my-project/ │ ├── .storybook/ │ │ ├── main.js │ │ └── preview.js │ ├── src/ │ │ ├── my-project.ts │ │ ├── MyProject.ts │ │ └── open-wc-logo.ts │ ├── stories/ │ │ └── my-project.stories.ts │ ├── test/ │ │ └── my-project.test.ts │ ├── .editorconfig │ ├── .eslintrc.js │ ├── .gitignore │ ├── custom-elements.json │ ├── index.html │ ├── karma.conf.js │ ├── LICENSE │ ├── package.json │ ├── README.md │ ├── rollup.config.js │ └── tsconfig.json
Этот проект имеет поддержку многих инструментов, таких как Lit-Element , машинопись , Eslint , красивее , карма (Тестирование), Статьгор (Денование) и Рулон (Строительство)
Наконец, бегите NPM запустить начало Команда дать предварительный просмотр приложения.
Расширения для визуального студийного кода
Я нашел следующие расширения кода Visual Studio Code, очень полезные для создания веб-компонентов с помощью Tearpcript:
- Lit-HTML Отказ Это расширение добавляет синтаксис подсветки и Intellisense для HTML-кода внутри Typeycript Taged Teamplate Strings.
- Litelement Snippet Отказ Это расширение обеспечивает
LitelementКодовые фрагменты для автогената класса с@CustomElement ()Декоратор, Автогенатные свойства,оказыватьфункция и многое другое.
- Litelement и Polymer V2/V3 фрагменты Отказ В качестве альтернативы, к предыдущему, вы можете установить это расширение, которое содержит несколько фрагментов JavaScript и HTML для LitElement и Polymer.
Вывод
Litelement – это отличная альтернатива для создания легких веб-приложений, поскольку он основан на стандарте веб-компонентов, при этом добавление совместимых с любым любым JavaScript Framework или библиотекой. Конечно, это возможно использовать эти компоненты для построения SPA (приложение для одной страницы) или даже добавить возможности PWA (Progressive Web Application).
С помощью TypeScript мы можем увидеть больше возможностей для создания веб-компонентов быстрее с хорошим опытом разработчика.
Эта точечная лаборатория – это современная веб-консультация, ориентированная на то, чтобы помочь компаниям по помощи, реализуют свои усилия по цифровым преобразованиям. Для экспертных архитектурных руководств, обучения или консалтинга в реагировании, угловых, Vue, веб-компонентах, графе, узле, базеля или полимере, посещение thisdotlabs.com .
Этот точечный носитель ориентирован на создание инклюзивной и образовательной сети для всех. Мы поддерживаем вас в курсе доспехов в современной сети через события, подкасты и бесплатный контент. Учиться, посетить thisdot.co .
Оригинал: “https://dev.to/thisdotmedia_staff/getting-started-with-litelement-and-typescript-417j”