v-template

<v-template> 组件允许您定义可以作为模板重用的标记。

道具

名称类型描述
ifString使用此模板的条件。
nameString模板的名称,如果省略则自动生成。

基本用法

<v-template> 组件由内部使用的 ListView组件 遍历其列表项。

高级用法

您可以使用 v-template 来实现需要模板或多个模板的自定义组件。

v-template 放置在模板中时不会渲染任何内容。相反,它向父元素添加了 $templates 属性。 $templates 属性是一个 TemplateBag 实例

接下来, v-template 将自身注册为父元素 TemplateBag 相应实例中的可用模板。 父元素上的任何现有 TemplateBag 实例都将被重用。

TemplateBag

TemplateBag 类允许注册多个模板,并根据项目和为每个模板提供的条件选择正确的模板。

模板存储为符合 KeyedTemplate 接口的对象。

selectorFn 属性

selectorFn 属性返回一个接受单个参数的函数。此参数是其模板已选中的项目。

单参数函数遍历 TemplateBag 实例中注册的所有模板,并返回满足 if 条件的第一个模板。如果没有模板匹配,则返回 default

可用方法

方法描述
registerTemplate(name: String, condition: String?, scopedFn: Function): void主要用于内部。
TemplateBag 实例中注册模板。
这个 scopedFn 应该是一个渲染的功能 作用域插槽
getConditionFn(condition: String): Function在内部使用
构建一个评估给定条件的函数。
getAvailable(): Array<String>返回可用的数组 KeyedTemplates。(返回模板名称数组。)
getKeyedTemplate(name: String): KeyedTemplate返回带有指定名称的 KeyedTemplate
getKeyedTemplates(): Array<KeyedTemplate>返回所有 KeyedTemplates 注册的数组 TemplateBag
patchTemplate(name: String, context: any, oldVnode: VNode?): View使用提供的上下文修补现有 VNode context。如果没有提供 oldVnode ,则为指定的模板创建新的View实例。
Contributors