v-template

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

属性

名称类型描述
if字符串使用此模板的条件。
name字符串模板的名称,如果省略则自动生成。

基本用法

<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>返回 TemplateBag 中注册的所有 KeyedTemplates 的数组。
patchTemplate(name: String, context: any, oldVnode: VNode?): View使用提供的 context 修补现有的 VNode。 如果没有提供 oldVnode,则为指定模板创建新的 View 实例。
贡献者