Декораторы
декоратор customElementИсходный код
Фабрика декораторов классов, которая определяет декорированный класс как пользовательский элемент.
Импорт
import { customElement } from 'lit/decorators.js';
Сигнатура
customElement(tagName): (classOrDescriptor: ClassDescriptor | CustomElementClass) => any
Параметры
- tagName
-
stringИмя тега пользовательского элемента, который нужно определить.
Подробности
@customElement('my-element')
class MyElement extends LitElement {
render() {
return html``;
}
}
декоратор eventOptionsИсходный код
Добавляет параметры прослушивателя событий методу, используемому в качестве прослушивателя событий в шаблоне lit-html.
Импорт
import { eventOptions } from 'lit/decorators.js';
Сигнатура
eventOptions(options): (protoOrDescriptor: ReactiveElement | ClassElement, name?: PropertyKey) => any
Параметры
- options
-
AddEventListenerOptionsОбъект, задающий параметры прослушивателя событий, допустимые для
EventTarget#addEventListenerиEventTarget#removeEventListener.
декоратор propertyИсходный код
Декоратор свойства, создающий реактивное свойство, которое отражает соответствующее значение атрибута. При изменении декорированного свойства элемент обновится и выполнит рендеринг. Для настройки функций свойства можно дополнительно передать PropertyDeclaration.
Импорт
import { property } from 'lit/decorators.js';
Сигнатура
property(options?): (protoOrDescriptor: Object | ClassElement, name?: PropertyKey) => any
Параметры
- options?
PropertyDeclaration<unknown, unknown>
Подробности
Этот декоратор следует использовать только для открытых полей. Открытые свойства следует считать предназначенными главным образом для установки пользователями элемента — через атрибут или непосредственно через само свойство. Как правило, свойства, изменяемые элементом, должны быть закрытыми или защищёнными полями и использовать декоратор state. Однако иногда коду элемента действительно необходимо устанавливать открытое свойство. Обычно это следует делать только в ответ на взаимодействие с пользователем и отправлять событие, информирующее пользователя; например, при щелчке флажок устанавливает свойство checked и отправляет событие changed. Как правило, открытые свойства не следует изменять, если они не являются примитивами (то есть объектами или массивами). В остальных случаях, когда элементу необходимо управлять состоянием, следует использовать закрытое свойство с декоратором state. При необходимости свойства состояния можно инициализировать через открытые свойства, чтобы обеспечить поддержку сложных взаимодействий.
class MyElement {
@property({ type: Boolean })
clicked = false;
}
декоратор queryИсходный код
Декоратор свойства, преобразующий свойство класса в геттер, который выполняет querySelector для renderRoot элемента.
Импорт
import { query } from 'lit/decorators.js';
Сигнатура
query(selector, cache?): (protoOrDescriptor: ReactiveElement | ClassElement, name?: PropertyKey) => any
Параметры
- selector
-
stringDOMString, содержащая один или несколько селекторов для поиска совпадений.
- cache?
-
booleanНеобязательное логическое значение: если оно равно true, запрос к DOM выполняется только один раз, а результат кэшируется.
декоратор queryAllИсходный код
Декоратор свойства, преобразующий свойство класса в геттер, который выполняет querySelectorAll для renderRoot элемента.
Импорт
import { queryAll } from 'lit/decorators.js';
Сигнатура
queryAll(selector): (protoOrDescriptor: ReactiveElement | ClassElement, name?: PropertyKey) => any
Параметры
- selector
-
stringDOMString, содержащая один или несколько селекторов для поиска совпадений.
декоратор queryAssignedElementsИсходный код
Декоратор свойства, преобразующий свойство класса в геттер, который возвращает assignedElements заданного slot. Предоставляет декларативный способ использования HTMLSlotElement.assignedElements.
Импорт
import { queryAssignedElements } from 'lit/decorators.js';
Сигнатура
queryAssignedElements(options?): (protoOrDescriptor: ReactiveElement | ClassElement, name?: PropertyKey) => any
Параметры
- options?
QueryAssignedElementsOptions
Подробности
Можно передать необязательный объект QueryAssignedElementsOptions. Пример использования:
class MyElement {
@queryAssignedElements({ slot: 'list' })
listItems!: Array<HTMLElement>;
@queryAssignedElements()
unnamedSlotEls!: Array<HTMLElement>;
render() {
return html`
<slot name="list"></slot>
<slot></slot>
`;
}
}
Обратите внимание: тип этого свойства следует указать как Array<HTMLElement>.
декоратор queryAssignedNodesИсходный код
Декоратор свойства, преобразующий свойство класса в геттер, который возвращает assignedNodes заданного slot.
Импорт
import { queryAssignedNodes } from 'lit/decorators.js';
Сигнатура
queryAssignedNodes(options?): TSDecoratorReturnType
Параметры
- options?
QueryAssignedNodesOptions
Подробности
Можно передать необязательный объект QueryAssignedNodesOptions. Пример использования:
class MyElement {
@queryAssignedNodes({slot: 'list', flatten: true})
listItems!: Array<Node>;
render() {
return html`
<slot name="list"></slot>
`;
}
}
Обратите внимание: тип этого свойства следует указать как Array<Node>.
декоратор queryAsyncИсходный код
Декоратор свойства, преобразующий свойство класса в геттер, который возвращает промис. Этот промис разрешается в результат querySelector для renderRoot элемента, полученный после разрешения промиса updateComplete элемента. Если запрашиваемое свойство может меняться вместе с состоянием элемента, этот декоратор позволяет не требовать от пользователей ожидания updateComplete перед обращением к свойству.
Импорт
import { queryAsync } from 'lit/decorators.js';
Сигнатура
queryAsync(selector): (protoOrDescriptor: ReactiveElement | ClassElement, name?: PropertyKey) => any
Параметры
- selector
-
stringDOMString, содержащая один или несколько селекторов для поиска совпадений.
декоратор stateИсходный код
Объявляет закрытое или защищённое реактивное свойство, изменение которого по-прежнему вызывает обновление элемента. Это свойство не отражается в соответствующем атрибуте.
Импорт
import { state } from 'lit/decorators.js';
Сигнатура
state(options?): (protoOrDescriptor: Object | ClassElement, name?: PropertyKey) => any
Параметры
- options?
InternalPropertyDeclaration<unknown>
Подробности
Объявленные таким способом свойства нельзя использовать в HTML или системах шаблонов HTML: они предназначены исключительно для внутренних свойств элемента. Такие свойства могут переименовываться инструментами оптимизации, например Closure Compiler.
тип InternalPropertyDeclarationИсходный код
Импорт
import { InternalPropertyDeclaration } from 'lit/decorators.js';
Методы и свойства
hasChanged(value, oldValue): booleanИсходный код
Функция, определяющая, следует ли считать свойство изменённым при его установке. Функция должна принимать newValue и oldValue и возвращать true, если нужно запросить обновление.
Параметры
- value
Type- oldValue
Type
тип QueryAssignedElementsOptionsИсходный код
Параметры декоратора queryAssignedElements. Расширяет набор параметров, передаваемых в HTMLSlotElement.assignedElements.
Импорт
import { QueryAssignedElementsOptions } from 'lit/decorators.js';
Методы и свойства
selector?: stringИсходный код
Селектор CSS, используемый для фильтрации возвращаемых элементов. Например, селектор ".item" выберет только элементы с классом item.
slot?: stringИсходный код
Имя слота для поиска. Оставьте поле пустым, чтобы выбрать слот по умолчанию.
тип QueryAssignedNodesOptionsИсходный код
Параметры декоратора queryAssignedNodes. Расширяет набор параметров, передаваемых в HTMLSlotElement.assignedNodes.
Импорт
import { QueryAssignedNodesOptions } from 'lit/decorators.js';
Методы и свойства
slot?: stringИсходный код
Имя слота для поиска. Оставьте поле пустым, чтобы выбрать слот по умолчанию.
© Google LLC
Licensed under the Creative Commons Attribution 3.0 Unported License.
https://lit.dev/docs/v2/api/decorators/