カスタムディレクティブ

抽象クラスDirectiveの基底クラスで、ディレクティブを含むパートが再レンダリングの結果としてクリアされた場合、またはユーザーが以前にディレクティブを含むレンダリングされたパートでpart.setConnected(false)を呼び出した場合(たとえば、LitElementがDOMから切断されたときに発生します)、disconnectedメソッドが呼び出されます。

インポート

詳細

その後、包含するパートでpart.setConnected(true)が呼び出された場合、ディレクティブの次のupdate/renderコールバックの前に、reconnectedメソッドが呼び出されます。disconnectedを実装する場合、再接続との互換性のためにreconnectedも実装する必要があります。ディレクティブが切断されている間も更新が発生する可能性があることに注意してください。そのため、ディレクティブは通常、レンダリング/更新中にthis.isConnectedフラグをチェックして、ガベージコレクションを防ぐ可能性のあるリソースのサブスクライブが安全かどうかを判断する必要があります。

メソッドとプロパティ

パラメータ
_partInfo
PartInfo

このディレクティブの接続状態。

このディレクティブによって保持されている可能性のあるリソース/サブスクリプションを解放するためのロジックを実装するためのユーザーコールバック。ディレクティブは再接続される可能性もあるため、次のレンダリングの前にディレクティブの動作状態を復元するために、reconnectedも実装する必要があります。

パラメータ
props
Array<unknown>

ディレクティブのパートの値を、ディレクティブの通常のupdate/renderライフサイクルの外で設定します。

パラメータ
value
unknown

設定する値

詳細

このメソッドは、ディレクティブのupdateまたはrenderから同期的に呼び出さないでください。

パラメータ
_part
Part
props
Array<unknown>

インポート

メソッドとプロパティ

new AttributePart(element, name, strings, parent, options): AttributePart

コンストラクタへのパーマリンク
パラメータ
element
MDN HTMLElement
name
string
strings
ReadonlyArray<string>
parent
Disconnectable
options
undefined | RenderOptions

readonly strings?: ReadonlyArray<string>

stringsへのパーマリンクソースを表示

この属性パートが補間を表す場合、これには補間の静的文字列が含まれます。単一の値の完全なバインディングの場合、これは未定義です。

インポート

メソッドとプロパティ

new BooleanAttributePart(element, name, strings, parent, options): BooleanAttributePart

コンストラクタへのパーマリンク
パラメータ
element
MDN HTMLElement
name
string
strings
ReadonlyArray<string>
parent
Disconnectable
options
undefined | RenderOptions

readonly strings?: ReadonlyArray<string>

stringsへのパーマリンクソースを表示

この属性パートが補間を表す場合、これには補間の静的文字列が含まれます。単一の値の完全なバインディングの場合、これは未定義です。

インポート

メソッドとプロパティ

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()メソッドと同じパラメータを持ちます。

インポート

シグネチャ

directive(c): (values: Parameters<InstanceType<C>["render"]>) => DirectiveResult<C>

パラメータ

c
C

カスタムディレクティブを作成するための基底クラス。ユーザーはこのクラスを拡張し、renderupdateを実装し、サブクラスをdirectiveに渡す必要があります。

インポート

メソッドとプロパティ

パラメータ
_partInfo
PartInfo
パラメータ
props
Array<unknown>
パラメータ
_part
Part
props
Array<unknown>

インポート

インポート

メソッドとプロパティ

new EventPart(element, name, strings, parent, options): EventPart

コンストラクタへのパーマリンク
パラメータ
element
MDN HTMLElement
name
string
strings
ReadonlyArray<string>
parent
Disconnectable
options
undefined | RenderOptions

readonly strings?: ReadonlyArray<string>

stringsへのパーマリンクソースを表示

この属性パートが補間を表す場合、これには補間の静的文字列が含まれます。単一の値の完全なバインディングの場合、これは未定義です。

パラメータ
event
Event

インポート

{ATTRIBUTE: 1, BOOLEAN_ATTRIBUTE: 4, CHILD: 2, ELEMENT: 6, EVENT: 5, PROPERTY: 3}

インポート

メソッドとプロパティ

new PropertyPart(element, name, strings, parent, options): PropertyPart

コンストラクタへのパーマリンク
パラメータ
element
MDN HTMLElement
name
string
strings
ReadonlyArray<string>
parent
Disconnectable
options
undefined | RenderOptions

readonly strings?: ReadonlyArray<string>

stringsへのパーマリンク ソースを表示

この属性パートが補間を表す場合、これには補間の静的文字列が含まれます。単一の値の完全なバインディングの場合、これは未定義です。

インポート

メソッドとプロパティ

readonly strings?: ReadonlyArray<string>

stringsへのパーマリンク ソースを表示

インポート

メソッドとプロパティ

インポート

メソッドとプロパティ

パラメータ
part
PartInfo

このユーティリティ型は、ディレクティブクラスの render() メソッドのシグネチャを抽出します。これにより、生成されたディレクティブ関数の型に使用できます。

インポート

Parameters<C["render"]>

生成されたディレクティブ関数はディレクティブを評価せず、引数をキャプチャする DirectiveResult オブジェクトを返します。

インポート

インポート

メソッドとプロパティ

インポート

ChildPart | AttributePart | PropertyPart | BooleanAttributePart | ElementPart | EventPart

ディレクティブがバインドされているパートに関する情報。

インポート

ChildPartInfo | AttributePartInfo | ElementPartInfo

詳細

これは、ディレクティブが属性バインディングでのみ使用できるディレクティブなど、有効なパートにアタッチされていることを確認するのに役立ちます。

インポート

シグネチャ

clearPart(part): void

パラメータ

part
ChildPart

ChildPart のコミット済みの値を返します。

インポート

シグネチャ

getCommittedValue(part): unknown

パラメータ

part
ChildPart

詳細

コミット済みの値は、変更の検出とパートの効率的な更新に使用されます。テンプレート値がコミット前に変換される場合、テンプレートまたはディレクティブによって設定された値とは異なる場合があります。

  • TemplateResultTemplateInstance としてコミットされます
  • Iterable は Array<ChildPart> としてコミットされます
  • 他のすべての型は、テンプレート値、またはディレクティブによって返されたまたは設定された値としてコミットされます。

DirectiveResult の Directive クラスを取得します

インポート

シグネチャ

getDirectiveClass(value): undefined | DirectiveClass

パラメータ

value
unknown

指定されたコンテナ ChildPart の DOM に、コンテナ ChildPart の末尾か、オプションの refPart の前に ChildPart を挿入します。

インポート

シグネチャ

insertPart(containerPart, refPart?, part?): ChildPart

パラメータ

containerPart
ChildPart

新しい ChildPart を追加するパート

refPart?
ChildPart

新しい ChildPart を追加する前のパート。省略すると、containerPart の末尾に追加されます

part?
ChildPart

挿入するパート。または、新しいパートを作成する場合は undefined

詳細

これは、パートを containerPart のコミット済みの値に追加しません。これは、呼び出し元が行う必要があります。

値が DirectiveResult であるかどうかをテストします。

インポート

シグネチャ

isDirectiveResult(value): value

パラメータ

value
unknown

値がプリミティブ値であるかどうかをテストします。

インポート

シグネチャ

isPrimitive(value): value

パラメータ

value
unknown

詳細

https://tc39.github.io/ecma262/#sec-typeof-operatorを参照

パートが、間に補間する文字列のない単一の式のみを持っているかどうかをテストします。

インポート

シグネチャ

isSingleExpression(part): boolean

パラメータ

part
PartInfo

詳細

AttributePart および PropertyPart のみ、複数の式を持つことができます。複数式パートには strings プロパティがあり、単一式パートにはありません。

値が TemplateResult であるかどうかをテストします。

インポート

シグネチャ

isTemplateResult(value, type?): value

パラメータ

value
unknown
type?
TemplateResultType

ChildPart とそのコンテンツを DOM から削除します。

インポート

シグネチャ

removePart(part): void

パラメータ

part
ChildPart

削除する Part

Part の値を設定します。

インポート

シグネチャ

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 のコミット段階をトリガーせずに直接設定します。

インポート

シグネチャ

setCommittedValue(part, value?): unknown

パラメータ

part
Part
value?
unknown

詳細

これは、ディレクティブが次の更新で値の変更を検出するかどうかを判断できるように、Part を更新する必要がある場合に便利です。value が省略された場合、次の更新は変更として検出されることが保証されます。

インポート

{HTML: 1, SVG: 2}

値がディレクティブによって処理され、DOM に書き込まれるべきではないことを示す番兵値です。

インポート

シンボル