この小さなコードは、kotlinのイディオムと高度な機能を備えているため、段階的に検討することをお勧めします。
- まず、
xRefImpl
はTag
の拡張機能なので、Tag
インスタンスを持つ、あなたは、この新しいメソッドを呼び出すことができるでしょう。
- 第2に、
ref
は実際には反応特性であり、これは成分への参照を得ることを可能にする。ここにはreact documentationの例があります。
使用例:契約で
<input type="text"
ref={(input) => { this.textInput = input; }} />
、ref
は、引数として渡されたコンポーネントを参照して、エンジンによって呼び出される関数を受け付けます。上記のコードは、this
タグ(xrefImpl
拡張機能を覚えておいてください)にref
を次のラムダ:prop.set(it.asDynamic())
で作成します。
次に、prop
は静的に型付けされたkotlinプロパティが(これは何KMutableProperty0
手段である)です。 get
とset
のメソッドがあり、この場合はit
という参照が割り当てられています。 it
はjavascriptに由来するので、そのタイプは不明です。したがって、dynamic castです。
consumer.onTagEvent()
は、JavaScriptのプロパティとイベントをバインドするためのkotlix-html内部の方法です。例えば
、これはこの枠組みの中でどのように処理されるか 'onmouseleave' です:
consumer.onTagEvent(this, "onmouseleave") {
console.log(it)
}
あなたはすべてのkotlinを除去し、イディオムを反応させる場合は、コードthis.consumer.onTagEvent(this, "ref", { prop.set(it.asDynamic()) })
は、単にprop = this.getComponent()
を行います。したがって、メソッドの目的はコンポーネント参照を取得することです。
最後に、引数がKMutableProperty0
であるため、このようにフィールドにコンポーネントをバインドすることができます。
xrefImpl(this::component)