Директивы
директива asyncAppendИсточник
Директива, отображающая элементы асинхронного итерируемого объекта[1] и добавляющая новые значения после предыдущих, подобно встроенной поддержке итерируемых объектов. Эта директива может использоваться только в дочерних выражениях.
Импорт
import { asyncAppend } from 'lit/directives/async-append.js';
Сигнатура
asyncAppend(value, _mapper?): DirectiveResult<AsyncAppendDirective>
Параметры
- value
-
AsyncIterable<unknown>Асинхронный итерируемый объект
- _mapper?
(v: unknown, index?: number) => unknown
Подробности
Асинхронные итерируемые объекты — это объекты с методом [Symbol.asyncIterator], который возвращает итератор, чей метод next() возвращает Promise. Когда появляется новое значение, Promise выполняется, и значение добавляется в Part, управляемый директивой. Если для Part задано другое значение, не связанное с этой директивой, отслеживание итерируемого объекта прекращается, и новые значения больше не записываются в Part. [1]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of
класс AsyncAppendDirectiveИсточник
Базовый абстрактный класс Directive, метод disconnected которого вызывается, когда содержащий директиву Part очищается в результате повторного рендеринга или когда пользователь вызывает part.setConnected(false) для Part, ранее отрендеренного с этой директивой (например, когда LitElement отключается от DOM).
Импорт
import { AsyncAppendDirective } from 'lit/directives/async-append.js';
Подробности
Если впоследствии для содержащего Part вызывается part.setConnected(true), метод reconnected директивы будет вызван до ее следующих обратных вызовов update/render. При реализации disconnected также необходимо реализовать reconnected для совместимости с повторным подключением. Обратите внимание, что обновления могут происходить, пока директива отключена. Поэтому во время render/update директивам обычно следует проверять флаг this.isConnected, чтобы определить, безопасно ли подписываться на ресурсы, которые могут препятствовать сборке мусора.
Методы и свойства
new AsyncAppendDirective(partInfo): AsyncAppendDirective
Параметры
- partInfo
PartInfo
isConnected: booleanИсточник
Состояние подключения этой директивы.
commitValue(value, index): voidИсточник
Параметры
- value
unknown- index
number
disconnected(): voidИсточник
Пользовательские обратные вызовы для реализации логики освобождения ресурсов/подписок, которые могла удерживать эта директива. Поскольку директивы могут подключаться повторно, также необходимо реализовать reconnected, чтобы восстановить рабочее состояние директивы до следующего рендеринга.
reconnected(): voidИсточник
render(value, _mapper?): symbolИсточник
Параметры
- value
AsyncIterable<T>- _mapper?
Mapper<T>
setValue(value): voidИсточник
Задает значение Part директивы вне обычного жизненного цикла update/render директивы.
Параметры
- value
-
unknownЗадаваемое значение
Подробности
Этот метод не следует вызывать синхронно из update или render директивы.
Параметры
- part
ChildPart- params
[value, _mapper]
директива asyncReplaceИсточник
Директива, отображающая элементы асинхронного итерируемого объекта[1] и заменяющая предыдущие значения новыми, так что в каждый момент времени отображается только одно значение. Эту директиву можно использовать в выражениях любого типа.
Импорт
import { asyncReplace } from 'lit/directives/async-replace.js';
Сигнатура
asyncReplace(value, _mapper?): DirectiveResult<AsyncReplaceDirective>
Параметры
- value
-
AsyncIterable<unknown>Асинхронный итерируемый объект
- _mapper?
Mapper<unknown>
Подробности
Асинхронные итерируемые объекты — это объекты с методом [Symbol.asyncIterator], который возвращает итератор, чей метод next() возвращает Promise. Когда появляется новое значение, Promise выполняется, и значение отображается в Part, управляемом директивой. Если для Part задано другое значение, не связанное с этой директивой, отслеживание итерируемого объекта прекращается, и новые значения больше не записываются в Part. [1]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of
класс AsyncReplaceDirectiveИсточник
Базовый абстрактный класс Directive, метод disconnected которого вызывается, когда содержащий директиву Part очищается в результате повторного рендеринга или когда пользователь вызывает part.setConnected(false) для Part, ранее отрендеренного с этой директивой (например, когда LitElement отключается от DOM).
Импорт
import { AsyncReplaceDirective } from 'lit/directives/async-replace.js';
Подробности
Если впоследствии для содержащего Part вызывается part.setConnected(true), метод reconnected директивы будет вызван до ее следующих обратных вызовов update/render. При реализации disconnected также необходимо реализовать reconnected для совместимости с повторным подключением. Обратите внимание, что обновления могут происходить, пока директива отключена. Поэтому во время render/update директивам обычно следует проверять флаг this.isConnected, чтобы определить, безопасно ли подписываться на ресурсы, которые могут препятствовать сборке мусора.
Методы и свойства
new AsyncReplaceDirective(_partInfo): AsyncReplaceDirective
Параметры
- _partInfo
PartInfo
isConnected: booleanИсточник
Состояние подключения этой директивы.
commitValue(value, _index): voidИсточник
Параметры
- value
unknown- _index
number
disconnected(): voidИсточник
Пользовательские обратные вызовы для реализации логики освобождения ресурсов/подписок, которые могла удерживать эта директива. Поскольку директивы могут подключаться повторно, также необходимо реализовать reconnected, чтобы восстановить рабочее состояние директивы до следующего рендеринга.
reconnected(): voidИсточник
render(value, _mapper?): symbolИсточник
Параметры
- value
AsyncIterable<T>- _mapper?
Mapper<T>
setValue(value): voidИсточник
Задает значение Part директивы вне обычного жизненного цикла update/render директивы.
Параметры
- value
-
unknownЗадаваемое значение
Подробности
Этот метод не следует вызывать синхронно из update или render директивы.
Параметры
- _part
ChildPart- __namedParameters
[value, _mapper]
директива cacheИсточник
Обеспечивает быстрое переключение между несколькими шаблонами, кэшируя узлы DOM и TemplateInstances, создаваемые этими шаблонами.
Импорт
import { cache } from 'lit/directives/cache.js';
Сигнатура
cache(v): DirectiveResult<CacheDirective>
Параметры
- v
unknown
Подробности
Пример:
let checked = false;
html`
${cache(checked ? html`input is checked` : html`input is not checked`)}
`
класс CacheDirectiveИсточник
Базовый класс для создания пользовательских директив. Пользователям следует расширить этот класс, реализовать render и/или update, а затем передать подкласс в directive.
Импорт
import { CacheDirective } from 'lit/directives/cache.js';
Методы и свойства
new CacheDirective(partInfo): CacheDirective
Параметры
- partInfo
PartInfo
render(v): Array<unknown>Источник
Параметры
- v
unknown
update(containerPart, __namedParameters): Array<unknown>Источник
Параметры
- containerPart
ChildPart- __namedParameters
[v]
директива chooseИсточник
Выбирает и вычисляет функцию шаблона из списка, сопоставляя заданное value с одним из вариантов.
Импорт
import { choose } from 'lit/directives/choose.js';
Сигнатура
choose(value, cases, defaultCase?): undefined | V
Параметры
- value
T- cases
Array<[T, () => V]>- defaultCase?
() => V
Подробности
Варианты задаются в виде [caseValue, func]. Значение value сопоставляется с caseValue с помощью строгого равенства. Выбирается первое совпадение. Значения вариантов могут быть любого типа, включая примитивы, объекты и символы. Это похоже на оператор switch, но используется как выражение и не предусматривает перехода к следующему варианту.
директива classMapИсточник
Директива, которая задает динамические CSS-классы.
Импорт
import { classMap } from 'lit/directives/class-map.js';
Сигнатура
classMap(classInfo): DirectiveResult<ClassMapDirective>
Параметры
- classInfo
ClassInfo
Подробности
Эту директиву необходимо использовать в атрибуте class, причем она должна быть единственной частью атрибута. Для каждого свойства аргумента classInfo директива добавляет имя свойства в classList элемента, если значение свойства истинно; если значение ложно, имя свойства удаляется из class элемента. Например, {foo: bar} применяет класс foo, если значение bar истинно.
класс ClassMapDirectiveИсточник
Базовый класс для создания пользовательских директив. Пользователям следует расширить этот класс, реализовать render и/или update, а затем передать подкласс в directive.
Импорт
import { ClassMapDirective } from 'lit/directives/class-map.js';
Методы и свойства
new ClassMapDirective(partInfo): ClassMapDirective
Параметры
- partInfo
PartInfo
render(classInfo): stringИсточник
Параметры
- classInfo
ClassInfo
Параметры
- part
AttributePart- __namedParameters
[classInfo]
тип ClassInfoИсточник
Набор пар «имя класса — истинное значение».
Импорт
import { ClassInfo } from 'lit/directives/class-map.js';
директива guardИсточник
Предотвращает повторный рендеринг функции шаблона до тех пор, пока не изменится одно значение или массив значений.
Импорт
import { guard } from 'lit/directives/guard.js';
Сигнатура
guard(_value, f): DirectiveResult<GuardDirective>
Параметры
- _value
unknown- f
-
() => unknownфункция шаблона
Подробности
Значения сравниваются с предыдущими с помощью строгого равенства (===), поэтому такая проверка не обнаруживает изменения вложенных свойств объектов или массивов. Элементы массивов сравниваются с предыдущими значениями по тем же индексам с помощью строгого равенства. Вложенные массивы также проверяются только на строгое равенство. Пример:
html`
<div>
${guard([user.id, company.id], () => html`...`)}
</div>
`
В этом случае шаблон повторно отображается, только если изменится user.id или company.id. guard() полезна при использовании шаблонов неизменяемых данных: она позволяет отложить ресурсоемкую работу до обновления данных. Пример:
html`
<div>
${guard([immutableItems], () => immutableItems.map(i => html`${i}`))}
</div>
`
В этом случае элементы обрабатываются с помощью map только при изменении ссылки на массив.
класс GuardDirectiveИсточник
Базовый класс для создания пользовательских директив. Пользователям следует расширить этот класс, реализовать render и/или update, а затем передать подкласс в directive.
Импорт
import { GuardDirective } from 'lit/directives/guard.js';
Методы и свойства
new GuardDirective(_partInfo): GuardDirective
Параметры
- _partInfo
PartInfo
render(_value, f): unknownИсточник
Параметры
- _value
unknown- f
() => unknown
update(_part, __namedParameters): unknownИсточник
Параметры
- _part
Part- __namedParameters
[_value, f]
директива ifDefinedИсточник
Для AttributeParts задает атрибут, если значение определено, и удаляет его, если значение равно undefined.
Импорт
import { ifDefined } from 'lit/directives/if-defined.js';
Сигнатура
ifDefined(value): nothing | NonNullable<T>
Параметры
- value
T
Подробности
Для других типов Part эта директива ничего не делает.
директива joinИсточник
Возвращает итерируемый объект, содержащий значения из items, между которыми чередуется значение joiner.
Импорт
import { join } from 'lit/directives/join.js';
Сигнатура
join(items, joiner): Iterable<I | J>
Параметры
- items
undefined | Iterable<I>- joiner
(index: number) => J
директива keyedИсточник
Связывает отображаемое значение с уникальным ключом. При изменении ключа предыдущий DOM удаляется и очищается перед отображением следующего значения, даже если значение — например, шаблон — остается тем же.
Импорт
import { keyed } from 'lit/directives/keyed.js';
Сигнатура
keyed(k, v): DirectiveResult<Keyed>
Параметры
- k
unknown- v
unknown
Подробности
Это полезно для принудительного повторного рендеринга компонентов с состоянием или при работе с кодом, который ожидает, что новые данные будут создавать новые элементы HTML, например, в некоторых методах анимации.
класс KeyedИсточник
Базовый класс для создания пользовательских директив. Пользователям следует расширить этот класс, реализовать render и/или update, а затем передать подкласс в directive.
Импорт
import { Keyed } from 'lit/directives/keyed.js';
Методы и свойства
new Keyed(_partInfo): Keyed
Параметры
- _partInfo
PartInfo
key: unknownИсточник
render(k, v): unknownИсточник
Параметры
- k
unknown- v
unknown
update(part, __namedParameters): unknownИсточник
Параметры
- part
ChildPart- __namedParameters
[k, v]
директива liveИсточник
При определении необходимости обновить значение проверяет значения привязки по текущим значениям DOM, а не по ранее привязанным значениям.
Импорт
import { live } from 'lit/directives/live.js';
Сигнатура
live(value): DirectiveResult<LiveDirective>
Параметры
- value
unknown
Подробности
Это полезно в случаях, когда значение DOM может измениться вне lit-html, например при привязке к свойству value элемента <input>, тексту редактируемого содержимого элемента или пользовательскому элементу, который изменяет собственные свойства или атрибуты. В таких случаях, если значение DOM изменилось, а значение, заданное через привязки lit-html, — нет, lit-html не узнает о необходимости обновить значение DOM и оставит его без изменений. Если это не то, что вам нужно, и вы хотите перезаписывать значение DOM привязанным значением независимо от обстоятельств, используйте директиву live():
html`<input .value=${live(x)}>`
live() выполняет проверку на строгое равенство с текущим значением DOM и ничего не делает, если новое значение равно текущему. Это означает, что live() не следует использовать, если привязка приводит к преобразованию типа. Если вы используете live() с привязкой атрибута, передавайте только строки, иначе привязка будет обновляться при каждом рендеринге.
класс LiveDirectiveИсточник
Базовый класс для создания пользовательских директив. Пользователям следует наследовать этот класс, реализовать render и/или update, а затем передать свой подкласс в directive.
Импорт
import { LiveDirective } from 'lit/directives/live.js';
Методы и свойства
new LiveDirective(partInfo): LiveDirective
Параметры
- partInfo
PartInfo
render(value): unknownИсточник
Параметры
- value
unknown
update(part, __namedParameters): unknownИсточник
Параметры
- part
AttributePart- __namedParameters
[value]
директива mapИсточник
Возвращает итерируемый объект, содержащий результат вызова f(value) для каждого значения в items.
Импорт
import { map } from 'lit/directives/map.js';
Сигнатура
map(items, f): Generator<unknown, void, unknown>
Параметры
- items
undefined | Iterable<T>- f
(value: T, index: number) => unknown
директива rangeИсточник
Возвращает итерируемый объект с целыми числами от start до end (не включая его), увеличивая значение на step.
Импорт
import { range } from 'lit/directives/range.js';
Сигнатура
range(end): Iterable<number>
Параметры
- end
number
Подробности
Если start не указано, диапазон начинается с 0. По умолчанию step равно 1.
директива createRefИсточник
Создаёт новый объект Ref, который служит контейнером для ссылки на элемент.
Импорт
import { createRef } from 'lit/directives/ref.js';
Сигнатура
createRef(): Ref<T>
директива refИсточник
Задаёт значение объекта Ref или вызывает callback-функцию ref с элементом, к которому привязана директива.
Импорт
import { ref } from 'lit/directives/ref.js';
Сигнатура
ref(_ref): DirectiveResult<RefDirective>
Параметры
- _ref
RefOrCallback
Подробности
Объект Ref служит контейнером для ссылки на элемент. Callback-функция ref — это функция, принимающая элемент в качестве единственного аргумента. Директива ref задаёт значение объекта Ref или вызывает callback-функцию ref во время рендеринга, если связанный элемент изменился. Примечание: если callback-функция ref при следующем рендеринге привязывается к другому элементу или удаляется, сначала она будет вызвана с undefined, а затем ещё раз — с новым элементом, к которому она привязана (если он есть).
// Using Ref object
const inputRef = createRef();
render(html`<input ${ref(inputRef)}>`, container);
inputRef.value.focus();
// Using callback
const callback = (inputElement) => inputElement.focus();
render(html`<input ${ref(callback)}>`, container);
класс RefИсточник
Объект, хранящий значение ref.
Импорт
import { Ref } from 'lit/directives/ref.js';
Методы и свойства
new Ref(): Ref<T>
readonly value?: TИсточник
Текущее значение Element для ref или undefined, если ref больше не отображается.
класс RefDirectiveИсточник
Абстрактный базовый класс Directive, метод disconnected которого будет вызван, когда часть, содержащая директиву, очищается в результате повторного рендеринга или когда пользователь вызывает part.setConnected(false) для части, ранее отрисованной с этой директивой (например, когда LitElement отключается от DOM).
Импорт
import { RefDirective } from 'lit/directives/ref.js';
Подробности
Если впоследствии для содержащей директиву части будет вызван part.setConnected(true), метод reconnected директивы будет вызван перед её следующими callback-вызовами update/render. При реализации disconnected также следует реализовать reconnected, чтобы обеспечить совместимость с повторным подключением. Обратите внимание, что обновления могут происходить, пока директива отключена. Поэтому директивам обычно следует проверять флаг this.isConnected во время рендеринга/обновления, чтобы определить, безопасно ли подписываться на ресурсы, которые могут помешать сборке мусора.
Методы и свойства
new RefDirective(_partInfo): RefDirective
Параметры
- _partInfo
PartInfo
isConnected: booleanИсточник
Состояние подключения этой директивы.
disconnected(): voidИсточник
Callback-функции пользователя для реализации логики освобождения ресурсов/подписок, которые могла сохранить эта директива. Поскольку директивы могут быть подключены повторно, также следует реализовать reconnected, чтобы восстановить рабочее состояние директивы перед следующим рендерингом.
reconnected(): voidИсточник
render(_ref): symbolИсточник
Параметры
- _ref
RefOrCallback
setValue(value): voidИсточник
Задаёт значение Part директивы вне обычного жизненного цикла update/render директивы.
Параметры
- value
-
unknownЗадаваемое значение
Подробности
Этот метод не следует вызывать синхронно из update или render директивы.
update(part, __namedParameters): symbolИсточник
Параметры
- part
ElementPart- __namedParameters
[_ref]
тип RefOrCallbackИсточник
Импорт
import { RefOrCallback } from 'lit/directives/ref.js';
Тип
Ref | (el: Element | undefined) => voidдиректива repeatИсточник
Директива, которая повторяет последовательность значений (обычно TemplateResults), созданных из итерируемого объекта, и эффективно обновляет эти элементы при изменении итерируемого объекта на основе заданных пользователем keys, связанных с каждым элементом.
Импорт
import { repeat } from 'lit/directives/repeat.js';
Сигнатура
repeat(items, keyFnOrTemplate, template?): unknown
Параметры
- items
Iterable<T>- keyFnOrTemplate
KeyFn<T> | ItemTemplate<T>- template?
ItemTemplate<T>
Подробности
Обратите внимание: если задан keyFn, поддерживается строгое соответствие ключей и DOM. Это означает, что при необходимости существующий DOM для заданного ключа перемещается на новую позицию, а DOM никогда не используется повторно для значений с другими ключами (для новых ключей всегда создаётся новый DOM). Как правило, это наиболее эффективный способ использовать repeat, поскольку он сводит к минимуму ненужную работу при вставке и удалении элементов. keyFn принимает два параметра — элемент и его индекс — и возвращает уникальное значение ключа.
html`
<ol>
${repeat(this.items, (item) => item.id, (item, index) => {
return html`<li>${index}: ${item.name}</li>`;
})}
</ol>
`
Важно: при указании keyFn ключи должны быть уникальными для всех элементов в одном вызове repeat. Поведение при наличии двух или более элементов с одинаковым ключом не определено. Если keyFn не задан, эта директива будет работать подобно преобразованию элементов в значения, а DOM может повторно использоваться для других элементов.
класс RepeatDirectiveИсточник
Базовый класс для создания пользовательских директив. Пользователям следует наследовать этот класс, реализовать render и/или update, а затем передать свой подкласс в directive.
Импорт
import { RepeatDirective } from 'lit/directives/repeat.js';
Методы и свойства
new RepeatDirective(partInfo): RepeatDirective
Параметры
- partInfo
PartInfo
render(items, template): Array<unknown>Источник
Параметры
- items
Iterable<T>- template
ItemTemplate<T>
Параметры
- containerPart
ChildPart- __namedParameters
[Iterable<T>, KeyFn<T> | ItemTemplate<T>, ItemTemplate<T>]
тип ItemTemplateИсточник
Импорт
import { ItemTemplate } from 'lit/directives/repeat.js';
Тип
(item: T, index: number) => unknownтип KeyFnИсточник
Импорт
import { KeyFn } from 'lit/directives/repeat.js';
Тип
(item: T, index: number) => unknownтип RepeatDirectiveFnИсточник
Импорт
import { RepeatDirectiveFn } from 'lit/directives/repeat.js';
Сигнатура
RepeatDirectiveFn(items, keyFnOrTemplate, template?): unknown
Параметры
- items
Iterable<T>- keyFnOrTemplate
KeyFn<T> | ItemTemplate<T>- template?
ItemTemplate<T>
директива styleMapИсточник
Директива, применяющая свойства CSS к элементу.
Импорт
import { styleMap } from 'lit/directives/style-map.js';
Сигнатура
styleMap(styleInfo): DirectiveResult<StyleMapDirective>
Параметры
- styleInfo
Readonly<StyleInfo>
Подробности
styleMap можно использовать только в атрибуте style, и оно должно быть единственным выражением в атрибуте. Директива берёт имена свойств из объекта styleInfo и добавляет их во встроенный стиль элемента. Имена свойств с дефисами (-) считаются допустимыми именами свойств CSS и задаются в объекте style элемента с помощью setProperty(). Имена без дефисов считаются именами свойств JavaScript в camelCase и задаются в объекте style элемента через присваивание свойству, что позволяет объекту style преобразовывать имена в стиле JavaScript в имена свойств CSS. Например, styleMap({backgroundColor: 'red', 'border-top': '5px', '--size': '0'}) задаёт свойства background-color, border-top и --size.
класс StyleMapDirectiveИсточник
Базовый класс для создания пользовательских директив. Пользователям следует наследовать этот класс, реализовать render и/или update, а затем передать свой подкласс в directive.
Импорт
import { StyleMapDirective } from 'lit/directives/style-map.js';
Методы и свойства
new StyleMapDirective(partInfo): StyleMapDirective
Параметры
- partInfo
PartInfo
render(styleInfo): stringИсточник
Параметры
- styleInfo
Readonly<StyleInfo>
Параметры
- part
AttributePart- __namedParameters
[styleInfo]
тип StyleInfoИсточник
Набор свойств CSS и их значений в формате «ключ-значение».
Импорт
import { StyleInfo } from 'lit/directives/style-map.js';
Подробности
Ключом должна быть либо строка с допустимым именем свойства CSS, например 'background-color', либо допустимое имя свойства CSSStyleDeclaration в формате camelCase для JavaScript, например backgroundColor.
директива templateContentИсточник
Отображает содержимое элемента template как HTML.
Импорт
import { templateContent } from 'lit/directives/template-content.js';
Сигнатура
templateContent(template): DirectiveResult<TemplateContentDirective>
Параметры
- template
HTMLTemplateElement
Подробности
Обратите внимание: шаблон должен контролироваться разработчиком, а не пользователем. Отображение шаблона, контролируемого пользователем, с помощью этой директивы может привести к уязвимостям межсайтового скриптинга.
класс TemplateContentDirectiveИсточник
Базовый класс для создания пользовательских директив. Пользователям следует наследовать этот класс, реализовать render и/или update, а затем передать свой подкласс в directive.
Импорт
import { TemplateContentDirective } from 'lit/directives/template-content.js';
Методы и свойства
new TemplateContentDirective(partInfo): TemplateContentDirective
Параметры
- partInfo
PartInfo
render(template): DocumentFragment | noChangeИсточник
Параметры
- template
HTMLTemplateElement
update(_part, props): unknownИсточник
Параметры
- _part
Part- props
Array<unknown>
директива unsafeHTMLИсточник
Отображает результат как HTML, а не как текст.
Импорт
import { unsafeHTML } from 'lit/directives/unsafe-html.js';
Сигнатура
unsafeHTML(value): DirectiveResult<UnsafeHTMLDirective>
Параметры
- value
undefined | null | string | noChange | nothing
Подробности
Значения undefined, null и nothing приведут к тому, что ничего не будет отображено (пустая строка). Обратите внимание: небезопасно использовать это с пользовательским вводом, который не был очищен или экранирован, поскольку это может привести к уязвимостям межсайтового скриптинга.
класс UnsafeHTMLDirectiveИсточник
Базовый класс для создания пользовательских директив. Пользователи должны унаследовать этот класс, реализовать render и/или update, а затем передать свой подкласс в directive.
Импорт
import { UnsafeHTMLDirective } from 'lit/directives/unsafe-html.js';
Методы и свойства
new UnsafeHTMLDirective(partInfo): UnsafeHTMLDirective
Параметры
- partInfo
PartInfo
static directiveName: stringИсточник
static resultType: numberИсточник
render(value): undefined | null | noChange | nothing | TemplateResult<ResultType>Источник
update(_part, props): unknownИсточник
Параметры
- _part
Part- props
Array<unknown>
директива unsafeSVGИсточник
Отображает результат как SVG, а не как текст.
Импорт
import { unsafeSVG } from 'lit/directives/unsafe-svg.js';
Сигнатура
unsafeSVG(value): DirectiveResult<UnsafeSVGDirective>
Параметры
- value
undefined | null | string | noChange | nothing
Подробности
Значения undefined, null и nothing приведут к тому, что ничего не будет отображено (пустая строка). Обратите внимание: небезопасно использовать это с пользовательским вводом, который не был очищен или экранирован, поскольку это может привести к уязвимостям межсайтового скриптинга.
класс UnsafeSVGDirectiveИсточник
Базовый класс для создания пользовательских директив. Пользователи должны унаследовать этот класс, реализовать render и/или update, а затем передать свой подкласс в directive.
Импорт
import { UnsafeSVGDirective } from 'lit/directives/unsafe-svg.js';
Методы и свойства
new UnsafeSVGDirective(partInfo): UnsafeSVGDirective
Параметры
- partInfo
PartInfo
static directiveName: stringИсточник
static resultType: numberИсточник
render(value): undefined | null | noChange | nothing | TemplateResult<ResultType>Источник
update(_part, props): unknownИсточник
Параметры
- _part
Part- props
Array<unknown>
директива untilИсточник
Отображает в части одно из нескольких значений, включая Promise.
Импорт
import { until } from 'lit/directives/until.js';
Сигнатура
until(values): DirectiveResult<UntilDirective>
Параметры
- values
Array<unknown>
Подробности
Значения отображаются в порядке приоритета: первый аргумент имеет наивысший приоритет, а последний — наименьший. Если значение является Promise, будут отображаться значения с более низким приоритетом, пока Promise не будет выполнен. Приоритет значений можно использовать для создания содержимого-заполнителя для асинхронных данных. Например, Promise с ожидающим содержимым может быть первым аргументом с наивысшим приоритетом, а шаблон с индикатором загрузки, не являющийся Promise, — вторым аргументом с более низким приоритетом. Индикатор загрузки отобразится сразу, а основное содержимое — после выполнения Promise. Пример:
const content = fetch('./content.txt').then(r => r.text());
html`${until(content, html`<span>Loading...</span>`)}`
класс UntilDirectiveИсточник
Абстрактный базовый класс Directive, метод disconnected которого будет вызван, когда часть, содержащая директиву, будет очищена в результате повторного рендеринга или когда пользователь вызовет part.setConnected(false) для части, которая ранее была отрисована с этой директивой (например, когда LitElement отключается от DOM).
Импорт
import { UntilDirective } from 'lit/directives/until.js';
Подробности
Если впоследствии для содержащей части будет вызван part.setConnected(true), метод reconnected директивы будет вызван до её следующих обратных вызовов update/render. При реализации disconnected также следует реализовать reconnected, чтобы обеспечить совместимость с повторным подключением. Обратите внимание, что обновления могут происходить, пока директива отключена. Поэтому во время рендеринга/обновления директивам, как правило, следует проверять флаг this.isConnected, чтобы определить, безопасно ли подписываться на ресурсы, которые могут помешать сборке мусора.
Методы и свойства
new UntilDirective(_partInfo): UntilDirective
Параметры
- _partInfo
PartInfo
isConnected: booleanИсточник
Состояние подключения этой директивы.
disconnected(): voidИсточник
Пользовательские обратные вызовы для реализации логики освобождения любых ресурсов/подписок, которые могла сохранить эта директива. Поскольку директивы также могут подключаться повторно, следует реализовать и reconnected, чтобы восстановить рабочее состояние директивы перед следующим рендерингом.
reconnected(): voidИсточник
render(args): unknownИсточник
Параметры
- args
Array<unknown>
setValue(value): voidИсточник
Устанавливает значение части директивы вне обычного жизненного цикла update/render.
Параметры
- value
-
unknownУстанавливаемое значение
Подробности
Этот метод не следует вызывать синхронно из update или render директивы.
update(_part, args): unknownИсточник
Параметры
- _part
Part- args
Array<unknown>
директива whenИсточник
Если condition имеет значение true, возвращает результат вызова trueCase(); в противном случае возвращает результат вызова falseCase(), если falseCase определено.
Импорт
import { when } from 'lit/directives/when.js';
Сигнатура
when(condition, trueCase, falseCase?): T
Параметры
- condition
true- trueCase
() => T- falseCase?
() => F
Подробности
Это удобная обёртка для тернарного выражения, которая упрощает запись встроенного условного выражения без ветви else.
© Google LLC
Licensed under the Creative Commons Attribution 3.0 Unported License.
https://lit.dev/docs/api/directives/