カスタムディレクティブ
抽象クラスDirective
の基底クラスで、ディレクティブを含むパートが再レンダリングの結果としてクリアされた場合、またはユーザーが以前にディレクティブを含むレンダリングされたパートでpart.setConnected(false)
を呼び出した場合(たとえば、LitElementがDOMから切断されたときに発生します)、disconnected
メソッドが呼び出されます。
インポート
import { AsyncDirective } from 'lit/async-directive.js';
詳細
その後、包含するパートでpart.setConnected(true)
が呼び出された場合、ディレクティブの次のupdate
/render
コールバックの前に、reconnected
メソッドが呼び出されます。disconnected
を実装する場合、再接続との互換性のためにreconnected
も実装する必要があります。ディレクティブが切断されている間も更新が発生する可能性があることに注意してください。そのため、ディレクティブは通常、レンダリング/更新中にthis.isConnected
フラグをチェックして、ガベージコレクションを防ぐ可能性のあるリソースのサブスクライブが安全かどうかを判断する必要があります。
メソッドとプロパティ
new AsyncDirective(_partInfo): AsyncDirective
コンストラクタへのパーマリンクパラメータ
- _partInfo
PartInfo
このディレクティブの接続状態。
このディレクティブによって保持されている可能性のあるリソース/サブスクリプションを解放するためのロジックを実装するためのユーザーコールバック。ディレクティブは再接続される可能性もあるため、次のレンダリングの前にディレクティブの動作状態を復元するために、reconnected
も実装する必要があります。
パラメータ
- props
Array<unknown>
ディレクティブのパートの値を、ディレクティブの通常のupdate
/render
ライフサイクルの外で設定します。
パラメータ
- value
unknown
設定する値
詳細
このメソッドは、ディレクティブのupdate
またはrender
から同期的に呼び出さないでください。
パラメータ
- _part
Part
- props
Array<unknown>
インポート
import { AttributePart } from 'lit/async-directive.js';
メソッドとプロパティ
new AttributePart(element, name, strings, parent, options): AttributePart
コンストラクタへのパーマリンクパラメータ
- element
HTMLElement
- name
string
- strings
ReadonlyArray<string>
- parent
Disconnectable
- options
undefined | RenderOptions
この属性パートが補間を表す場合、これには補間の静的文字列が含まれます。単一の値の完全なバインディングの場合、これは未定義です。
インポート
import { BooleanAttributePart } from 'lit/async-directive.js';
メソッドとプロパティ
new BooleanAttributePart(element, name, strings, parent, options): BooleanAttributePart
コンストラクタへのパーマリンクパラメータ
- element
HTMLElement
- name
string
- strings
ReadonlyArray<string>
- parent
Disconnectable
- options
undefined | RenderOptions
この属性パートが補間を表す場合、これには補間の静的文字列が含まれます。単一の値の完全なバインディングの場合、これは未定義です。
インポート
import { ChildPart } from 'lit/async-directive.js';
メソッドとプロパティ
new ChildPart(startNode, endNode, parent, options): ChildPart
コンストラクタへのパーマリンクパラメータ
- startNode
ChildNode
- endNode
null | ChildNode
- parent
undefined | ChildPart | TemplateInstance
- options
undefined | RenderOptions
パートの末尾マーカーノード(存在する場合)。詳細については.parentNode
を参照してください。
パートがコンテンツをレンダリングする親ノード。
詳細
ChildPartのコンテンツは、.parentNode
の隣接する子ノードの範囲で構成され、場合によっては「マーカーノード」(.startNode
と.endNode
)で区切られます。
.startNode
と.endNode
の両方がnullでない場合、パートのコンテンツは、.startNode
と.endNode
の間にあるすべての兄弟で構成されます(排他的)。.startNode
がnullでないが.endNode
がnullの場合、パートのコンテンツは、.startNode
に続くすべての兄弟で構成されます。.parentNode
の最後の子までを含みます。.endNode
がnullでない場合、.startNode
は常にnullではありません。.endNode
と.startNode
の両方がnullの場合、パートのコンテンツは、.parentNode
のすべての子ノードで構成されます。
パートの先頭マーカーノード(存在する場合)。詳細については.parentNode
を参照してください。
Directiveクラスからユーザー向けのディレクティブ関数を作成します。この関数は、ディレクティブのrender()メソッドと同じパラメータを持ちます。
インポート
import { directive } from 'lit/async-directive.js';
シグネチャ
directive(c): (values: Parameters<InstanceType<C>["render"]>) => DirectiveResult<C>
パラメータ
- c
C
カスタムディレクティブを作成するための基底クラス。ユーザーはこのクラスを拡張し、render
やupdate
を実装し、サブクラスをdirective
に渡す必要があります。
インポート
import { Directive } from 'lit/async-directive.js';
メソッドとプロパティ
new Directive(_partInfo): Directive
コンストラクタへのパーマリンクパラメータ
- _partInfo
PartInfo
パラメータ
- props
Array<unknown>
パラメータ
- _part
Part
- props
Array<unknown>
インポート
import { ElementPart } from 'lit/async-directive.js';
メソッドとプロパティ
new ElementPart(element, parent, options): ElementPart
コンストラクタへのパーマリンクパラメータ
- element
Element
- parent
Disconnectable
- options
undefined | RenderOptions
インポート
import { EventPart } from 'lit/async-directive.js';
メソッドとプロパティ
new EventPart(element, name, strings, parent, options): EventPart
コンストラクタへのパーマリンクパラメータ
- element
HTMLElement
- name
string
- strings
ReadonlyArray<string>
- parent
Disconnectable
- options
undefined | RenderOptions
この属性パートが補間を表す場合、これには補間の静的文字列が含まれます。単一の値の完全なバインディングの場合、これは未定義です。
パラメータ
- event
Event
インポート
import { PartType } from 'lit/async-directive.js';
型
{ATTRIBUTE: 1, BOOLEAN_ATTRIBUTE: 4, CHILD: 2, ELEMENT: 6, EVENT: 5, PROPERTY: 3}
インポート
import { PropertyPart } from 'lit/async-directive.js';
メソッドとプロパティ
new PropertyPart(element, name, strings, parent, options): PropertyPart
コンストラクタへのパーマリンクパラメータ
- element
HTMLElement
- name
string
- strings
ReadonlyArray<string>
- parent
Disconnectable
- options
undefined | RenderOptions
この属性パートが補間を表す場合、これには補間の静的文字列が含まれます。単一の値の完全なバインディングの場合、これは未定義です。
インポート
import { AttributePartInfo } from 'lit/async-directive.js';
メソッドとプロパティ
インポート
import { ChildPartInfo } from 'lit/async-directive.js';
メソッドとプロパティ
インポート
import { DirectiveClass } from 'lit/async-directive.js';
このユーティリティ型は、ディレクティブクラスの render() メソッドのシグネチャを抽出します。これにより、生成されたディレクティブ関数の型に使用できます。
インポート
import { DirectiveParameters } from 'lit/async-directive.js';
型
Parameters<C["render"]>
生成されたディレクティブ関数はディレクティブを評価せず、引数をキャプチャする DirectiveResult オブジェクトを返します。
インポート
import { DirectiveResult } from 'lit/async-directive.js';
インポート
import { ElementPartInfo } from 'lit/async-directive.js';
メソッドとプロパティ
インポート
import { Part } from 'lit/async-directive.js';
型
ChildPart | AttributePart | PropertyPart | BooleanAttributePart | ElementPart | EventPart
ディレクティブがバインドされているパートに関する情報。
インポート
import { PartInfo } from 'lit/async-directive.js';
型
ChildPartInfo | AttributePartInfo | ElementPartInfo
詳細
これは、ディレクティブが属性バインディングでのみ使用できるディレクティブなど、有効なパートにアタッチされていることを確認するのに役立ちます。
インポート
import { clearPart } from 'lit/directive-helpers.js';
シグネチャ
clearPart(part): void
パラメータ
- part
ChildPart
ChildPart のコミット済みの値を返します。
インポート
import { getCommittedValue } from 'lit/directive-helpers.js';
シグネチャ
getCommittedValue(part): unknown
パラメータ
- part
ChildPart
詳細
コミット済みの値は、変更の検出とパートの効率的な更新に使用されます。テンプレート値がコミット前に変換される場合、テンプレートまたはディレクティブによって設定された値とは異なる場合があります。
TemplateResult
はTemplateInstance
としてコミットされます- Iterable は
Array<ChildPart>
としてコミットされます - 他のすべての型は、テンプレート値、またはディレクティブによって返されたまたは設定された値としてコミットされます。
DirectiveResult の Directive クラスを取得します
インポート
import { getDirectiveClass } from 'lit/directive-helpers.js';
シグネチャ
getDirectiveClass(value): undefined | DirectiveClass
パラメータ
- value
unknown
指定されたコンテナ ChildPart の DOM に、コンテナ ChildPart の末尾か、オプションの refPart
の前に ChildPart を挿入します。
インポート
import { insertPart } from 'lit/directive-helpers.js';
シグネチャ
insertPart(containerPart, refPart?, part?): ChildPart
パラメータ
- containerPart
ChildPart
新しい ChildPart を追加するパート
- refPart?
ChildPart
新しい ChildPart を追加する前のパート。省略すると、
containerPart
の末尾に追加されます- part?
ChildPart
挿入するパート。または、新しいパートを作成する場合は undefined
詳細
これは、パートを containerPart のコミット済みの値に追加しません。これは、呼び出し元が行う必要があります。
値が DirectiveResult であるかどうかをテストします。
インポート
import { isDirectiveResult } from 'lit/directive-helpers.js';
シグネチャ
isDirectiveResult(value): value
パラメータ
- value
unknown
値がプリミティブ値であるかどうかをテストします。
インポート
import { isPrimitive } from 'lit/directive-helpers.js';
シグネチャ
isPrimitive(value): value
パラメータ
- value
unknown
詳細
https://tc39.github.io/ecma262/#sec-typeof-operatorを参照
パートが、間に補間する文字列のない単一の式のみを持っているかどうかをテストします。
インポート
import { isSingleExpression } from 'lit/directive-helpers.js';
シグネチャ
isSingleExpression(part): boolean
パラメータ
- part
PartInfo
詳細
AttributePart および PropertyPart のみ、複数の式を持つことができます。複数式パートには strings
プロパティがあり、単一式パートにはありません。
値が TemplateResult であるかどうかをテストします。
インポート
import { isTemplateResult } from 'lit/directive-helpers.js';
シグネチャ
isTemplateResult(value, type?): value
パラメータ
- value
unknown
- type?
TemplateResultType
ChildPart とそのコンテンツを DOM から削除します。
インポート
import { removePart } from 'lit/directive-helpers.js';
シグネチャ
removePart(part): void
パラメータ
- part
ChildPart
削除する Part
Part の値を設定します。
インポート
import { setChildPartValue } from 'lit/directive-helpers.js';
シグネチャ
setChildPartValue(part, value, directiveParent?): T
パラメータ
- part
T
設定する Part
- value
unknown
設定する値
- directiveParent?
DirectiveParent
内部で使用されます。ユーザーは設定しないでください。
詳細
これは、ユーザーが作成した Part (つまり、insertPart
を使用して作成した Part) の値を設定/更新するためにのみ使用する必要があることに注意してください。ディレクティブがディレクティブのコンテナ Part の値を設定するために使用するべきではありません。ディレクティブは、Part の状態を更新するために update
/render
から値を返す必要があります。Part の値を非同期に設定する必要があるディレクティブの場合は、AsyncDirective
を拡張し、this.setValue()
を呼び出す必要があります。
Part のコミットされた値を、Part のコミット段階をトリガーせずに直接設定します。
インポート
import { setCommittedValue } from 'lit/directive-helpers.js';
シグネチャ
setCommittedValue(part, value?): unknown
パラメータ
- part
Part
- value?
unknown
詳細
これは、ディレクティブが次の更新で値の変更を検出するかどうかを判断できるように、Part を更新する必要がある場合に便利です。value が省略された場合、次の更新は変更として検出されることが保証されます。
インポート
import { TemplateResultType } from 'lit/directive-helpers.js';
型
{HTML: 1, SVG: 2}
値がディレクティブによって処理され、DOM に書き込まれるべきではないことを示す番兵値です。
インポート
import { noChange } from 'lit';
型
シンボル