Spec-Zone.ru › Lit 1

UpdatingElement

значение defaultConverterИсточник

Импорт

import { defaultConverter } from 'lit-element/lib/updating-element.js';

Тип

ComplexAttributeConverter

функция notEqualИсточник

Функция проверки изменений, возвращающая true, если value отличается от oldValue. Этот метод используется по умолчанию для функции hasChanged свойства.

Импорт

import { notEqual } from 'lit-element/lib/updating-element.js';

Сигнатура

notEqual(value, old): boolean

Параметры

value
unknown
old
unknown

класс UpdatingElementИсточник

Базовый класс элемента, управляющий свойствами и атрибутами элемента. При изменении свойств асинхронно вызывается метод update. Подклассы должны предоставлять этот метод для выполнения обновления отрисовки нужным образом.

Импорт

import { UpdatingElement } from 'lit-element/lib/updating-element.js';

Методы и свойства

new UpdatingElement(): UpdatingElementИсточник

static finalized: booleanИсточник

Отмечает, что создание свойств класса завершено.

static properties: PropertyDeclarationsИсточник

Предоставляемый пользователем объект, сопоставляющий имена свойств с объектами PropertyDeclaration, содержащими параметры настройки свойства.

hasUpdated: numberИсточник

updateComplete: Promise<unknown>Источник

Возвращает Promise, который разрешается после завершения обновления элемента. Значением Promise является логическое значение, равное true, если обновление элемента завершилось без запуска нового обновления. Результат Promise равен false, если свойство было задано внутри updated(). Если Promise отклонён, во время обновления было выброшено исключение.

Подробности

Чтобы дождаться завершения дополнительной асинхронной работы, переопределите метод _getUpdateComplete. Например, иногда полезно дождаться отображения элемента перед разрешением этого Promise. Для этого сначала дождитесь super._getUpdateComplete(), а затем любого последующего состояния.

static observedAttributes: Array<string>Источник

Возвращает список атрибутов, соответствующих зарегистрированным свойствам.

attributeChangedCallback(name, old, value): voidИсточник

Синхронизирует значения свойств при изменении атрибутов.

Параметры
name
string
old
null | string
value
null | string

connectedCallback(): voidИсточник

disconnectedCallback(): voidИсточник

Позволяет выполнять super.disconnectedCallback() в расширениях, сохраняя возможность в будущем добавлять новые функции без нарушения совместимости при отключении элемента.

enableUpdating(): voidИсточник

firstUpdated(_changedProperties): voidИсточник

Вызывается при первом обновлении элемента. Реализуйте этот метод, чтобы однократно выполнить над элементом необходимые действия после обновления.

Параметры
_changedProperties
Map<string | number | symbol, unknown>

Карта изменённых свойств с их старыми значениями

Подробности

Изменение свойств внутри этого метода приведёт к повторному обновлению элемента после завершения текущего цикла обновления.

getUpdateComplete(): Promise<unknown>Источник

Точка переопределения для Promise updateComplete.

Подробности

Непосредственно переопределять геттер updateComplete небезопасно из-за ограничения TypeScript: при целевом языке ES5 невозможно вызвать геттер суперкласса (например, super.updateComplete.then(...)) (https://github.com/microsoft/TypeScript/issues/338). Вместо этого следует переопределить этот метод. Например:

class MyElement extends LitElement { async getUpdateComplete() { await super.getUpdateComplete(); await this._myChild.updateComplete; } }

initialize(): voidИсточник

Выполняет инициализацию элемента. По умолчанию сохраняет все предварительно заданные значения зарегистрированных свойств.

performUpdate(): void | Promise<unknown>Источник

Выполняет обновление элемента. Обратите внимание: если во время обновления выбрасывается исключение, firstUpdated и updated вызваны не будут.

Подробности

Этот метод можно переопределить, чтобы изменить время выполнения обновлений. При переопределении этого метода необходимо вызвать super.performUpdate().

Например, чтобы запланировать обновления непосредственно перед следующим кадром:

protected async performUpdate(): Promise<unknown> {
await new Promise((resolve) => requestAnimationFrame(() => resolve()));
super.performUpdate();
}

requestUpdate(name?, oldValue?): Promise<unknown>Источник

Запрашивает обновление, которое выполняется асинхронно. Этот метод следует вызывать, когда элемент должен обновиться на основании состояния, изменение которого не вызвано установкой свойства. В этом случае не передавайте аргументы. Его также следует вызывать при ручной реализации сеттера свойства. В этом случае передайте свойство name и oldValue, чтобы учесть все настроенные параметры свойства. Возвращает Promise updateComplete, который разрешается после завершения обновления.

Параметры
name?
PropertyKey

(необязательно) имя свойства, вызвавшего запрос

oldValue?
unknown

(необязательно) старое значение свойства, вызвавшего запрос

requestUpdateInternal(name?, oldValue?, options?): voidИсточник

Эта защищённая версия requestUpdate не обращается к Promise updateComplete и не возвращает его. Этот Promise можно переопределить, поэтому к нему нельзя обращаться без ограничений.

Параметры
name?
PropertyKey
oldValue?
unknown
options?
PropertyDeclaration<unknown, unknown>

shouldUpdate(_changedProperties): booleanИсточник

Определяет, следует ли вызывать update при запросе обновления элемента. По умолчанию этот метод всегда возвращает true, однако его можно настроить, чтобы управлять моментом обновления.

Параметры
_changedProperties
Map<string | number | symbol, unknown>

Карта изменённых свойств с их старыми значениями

update(_changedProperties): voidИсточник

Обновляет элемент. Этот метод отражает значения свойств в атрибутах. Его можно переопределить, чтобы отрисовывать DOM элемента и поддерживать его в актуальном состоянии. Изменение свойств внутри этого метода не приведёт к повторному обновлению.

Параметры
_changedProperties
Map<string | number | symbol, unknown>

Карта изменённых свойств с их старыми значениями

updated(_changedProperties): voidИсточник

Вызывается после каждого обновления элемента. Реализуйте этот метод, чтобы выполнять задачи после обновления с помощью DOM API, например устанавливать фокус на элементе.

Параметры
_changedProperties
Map<string | number | symbol, unknown>

Карта изменённых свойств с их старыми значениями

Подробности

Изменение свойств внутри этого метода приведёт к повторному обновлению элемента после завершения текущего цикла обновления.

static createProperty(name, options): voidИсточник

Создаёт аксессор свойства в прототипе элемента, если он ещё не существует, и сохраняет объявление PropertyDeclaration для свойства с указанными параметрами. Сеттер свойства вызывает параметр свойства hasChanged или использует строгое сравнение идентичности, чтобы определить, следует ли запрашивать обновление.

Параметры
name
PropertyKey
options
PropertyDeclaration<unknown, unknown>
Подробности

Этот метод можно переопределить для настройки свойств; однако при этом важно вызвать super.createProperty, чтобы свойство было настроено правильно. Этот метод внутри вызывает getPropertyDescriptor для получения дескриптора, который нужно установить. Чтобы настроить поведение свойств при чтении или записи, переопределите getPropertyDescriptor. Чтобы настроить параметры свойства, реализуйте createProperty следующим образом:

static createProperty(name, options) { options = Object.assign(options, {myOption: true}); super.createProperty(name, options); }

static finalize(): voidИсточник

Создаёт аксессоры для зарегистрированных свойств и обеспечивает финализацию всех суперклассов.

static getPropertyDescriptor(name, key, options): {configurable: boolean, enumerable: boolean, get: () => any, set: (value: unknown) => void}Источник

Возвращает дескриптор свойства, который следует определить для указанного свойства. Если дескриптор не возвращён, свойство не станет аксессором. Например,

Параметры
name
PropertyKey
key
string | symbol
options
PropertyDeclaration<unknown, unknown>
Подробности

class MyElement extends LitElement { static getPropertyDescriptor(name, key, options) { const defaultDescriptor = super.getPropertyDescriptor(name, key, options); const setter = defaultDescriptor.set; return { get: defaultDescriptor.get, set(value) { setter.call(this, value); // custom action. }, configurable: true, enumerable: true } } }

static getPropertyOptions(name): PropertyDeclaration<unknown, unknown>Источник

Возвращает параметры свойства, связанные с указанным свойством. Эти параметры задаются с помощью PropertyDeclaration через объект properties или декоратор @property и регистрируются в createProperty(...).

Параметры
name
PropertyKey
Подробности

Обратите внимание: этот метод следует считать «финальным» и не переопределять. Чтобы настроить параметры конкретного свойства, переопределите createProperty.

тип ComplexAttributeConverterИсточник

Преобразует значения свойств в значения атрибутов и обратно.

Импорт

import { ComplexAttributeConverter } from 'lit-element/lib/updating-element.js';

Методы и свойства

fromAttribute(value, type?): Type

Функция, вызываемая для преобразования значения атрибута в значение свойства.

Параметры
value
null | string
type?
TypeHint

toAttribute(value, type?): unknown

Функция, вызываемая для преобразования значения свойства в значение атрибута.

Параметры
value
Type
type?
TypeHint
Подробности

Возвращает unknown вместо string для совместимости с https://github.com/WICG/trusted-types и аналогичными инициативами.

тип HasChangedИсточник

Импорт

import { HasChanged } from 'lit-element/lib/updating-element.js';

Сигнатура

HasChanged(value, old): boolean

Параметры

value
unknown
old
unknown

тип PropertyDeclarationИсточник

Определяет параметры аксессора свойства.

Импорт

import { PropertyDeclaration } from 'lit-element/lib/updating-element.js';

Методы и свойства

readonly attribute?: string | booleanИсточник

Указывает, будет ли свойство представлено наблюдаемым атрибутом и каким образом. Если значение равно false, свойство не добавляется в observedAttributes. Если значение равно true или отсутствует, наблюдается имя свойства в нижнем регистре (например, fooBar становится foobar). Если задана строка, наблюдается это строковое значение (например, attribute: 'foo-bar').

readonly converter?: AttributeConverter<Type, TypeHint>Источник

Указывает, как преобразовывать атрибут в свойство и обратно. Если это значение является функцией, она используется для преобразования значения атрибута в значение свойства. Если это объект, он может содержать ключи fromAttribute и toAttribute. Если функция toAttribute не указана, а reflect задано как true, значение свойства напрямую устанавливается в атрибут. Если преобразователь converter не указан, используется преобразователь по умолчанию; он поддерживает Boolean, String, Number, Object и Array. Обратите внимание: при изменении свойства и обновлении атрибута с помощью преобразователя последующее изменение атрибута не приводит к повторному обновлению свойства, и наоборот.

readonly noAccessor?: booleanИсточник

Указывает, будет ли создан аксессор для этого свойства. По умолчанию для свойства создаётся аксессор, который запрашивает обновление при установке значения. Если этот флаг равен true, аксессор не создаётся, и пользователь должен сам вызывать this.requestUpdate(propertyName, oldValue) для запроса обновления при изменении свойства.

readonly reflect?: booleanИсточник

Указывает, следует ли отражать свойство в атрибуте. Если true, при установке свойства устанавливается атрибут с именем, определённым согласно правилам параметра свойства attribute, а значение свойства преобразуется согласно правилам параметра свойства converter.

readonly type?: TypeHintИсточник

Указывает тип свойства. Используется только как подсказка для converter, определяющая способ преобразования атрибута в свойство и обратно.

hasChanged(value, oldValue): boolean

Функция, определяющая, следует ли считать свойство изменившимся при установке значения. Функция должна принимать newValue и oldValue и возвращать true, если необходимо запросить обновление.

Параметры
value
Type
oldValue
Type

тип PropertyDeclarationsИсточник

Карта свойств и параметров PropertyDeclaration. Для каждого свойства создаётся аксессор, а само свойство обрабатывается согласно параметрам PropertyDeclaration.

Импорт

import { PropertyDeclarations } from 'lit-element/lib/updating-element.js';

тип PropertyValuesИсточник

Карта изменённых свойств с их старыми значениями. Принимает необязательный обобщённый интерфейс, соответствующий объявленным свойствам элемента.

Импорт

import { PropertyValues } from 'lit-element/lib/updating-element.js';

Тип

keyof T ? Map<keyof T, unknown> : never

© Google LLC
Licensed under the Creative Commons Attribution 3.0 Unported License.
https://lit.dev/docs/v1/api/lit-element/UpdatingElement/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API