<v-template>コンポーネントはテンプレートとして再利用できるマークアップを定義します。
| Name | Type | Description |
|---|---|---|
if | String | l このテンプレートを使うかどうかの条件。 |
name | String | テンプレートの名前、省かれた場合自動で生成される。 |
<v-template>コンポーネントはListView componentの内部で要素をイテレートする際に使われます。
You can use v-template to implement custom components that require a template or multiple templates.
v-templateはテンプレートの中に配置されたときは何も描写しません。代わりに、親要素に$templatesプロパティを追加します。この$templatesプロパティはTemplateBag instanceです。
次に、v-templateは親要素の持つ個別のTemplateBagインスタンスに自身を利用可能なテンプレートとして登録します。 Any existing 親要素に存在する全てのTemplateBagインスタンスは再利用されます
TemplateBagクラスTTemplateBagクラスは複数のテンプレートを登録し、テンプレートに渡された要素と条件にしたがって適切なものを選択します。
テンプレートはKeyedTemplateインターフェースに対応するオブジェクトとして保存されます。
selectorFnプロパティselectorFnは一つの引数を受け取る関数(single-parameter function)を返します。この引数には選択されたテンプレートの要素が入ります。
single-parameter functionはTemplateBagインスタンスに登録された全てのテンプレートを見て、ifの条件にあった初めの要素ものを返します。一致するテンプレートがない場合はdefaultを返します。
| Method | Description |
|---|---|
registerTemplate(name: String, condition: String?, scopedFn: Function): void | 主に内部で使われます。 Registers templates in the TemplateBag instance.scopedFnはscoped slotを描写する関数である必要があります。 |
getConditionFn(condition: String): Function | 内部で使われます 与えられた条件を評価する関数を生成します。 |
getAvailable(): Array<String> | 利用可能なKeyedTemplatesの配列を返します。 (テンプレートの名前の配列を返します) |
getKeyedTemplate(name: String): KeyedTemplate | 指定された名前のKeyedTemplateを返します。 |
getKeyedTemplates(): Array<KeyedTemplate> | TemplateBagに登録されている全てのKeyedTemplates の配列を返します。 |
patchTemplate(name: String, context: any, oldVnode: VNode?): View | 既存のVNodeに対し与えられたcontextを使ってパッチ処理を行います。oldVnodeがない場合は指定されたテンプレートで新たなVueインスタンスを生成します。 |