El componente <v-template>
permite definir una plantilla reutilizable con componentes y/o contenido.
Nombre | Tipo | Descripción |
---|---|---|
if | String | La condición mediante la cual se usará el template. |
name | String | El nombre del template (si no es especificado, se autogenera). |
El componente <v-template>
es utilizado internamente por el componente ListView para iterar los elementos de la lista.
Puedes usar el componente v-template
para implementar componentes perzonalizados que requieran una o múltiples plantillas.
v-template
no renderiza nada cuando es colocado dentro en un elemento. En cambio, lo que hace es agregar una propiedad llamada $templates
al elemento padre. Esta propiedad $templates
es una instancia de TemplateBag
.
Luego, el componente v-template
se registra a si mismo como un template disponible dentro de la instancia de TemplateBag
del componente padre correspondiente. Cualquier instancia existente de TemplateBag
en el elemento padre es reutilizada.
TemplateBag
La clase TemplateBag
permite registrar multiples templates y seleccionar el indicado basado en el elemento y la condición de cada template.
Los templates son almacenados como objetos, conforme a lo que indica la interfaz KeyedTemplate
.
selectorFn
La propiedad selectorFn
retorna una función que acepta una solo parametro. Este parametro representa al item cuyo template es seleccionado.
Lo que hace esta función es recorrer todos los templates registrados en la instancia TemplateBag
y delvolver el primero que cumple con la condición if
especificada. En caso de no encontrar una coincidencia, devuelve default
.
Método | Descripción |
---|---|
registerTemplate(name: String, condition: String?, scopedFn: Function): void | Mayormente usado de forma interna. Registra un template en la instancia TemplateBag .El parametro scopedFn debe ser una función render de un scoped slot |
getConditionFn(condition: String): Function | Usado de forma interna. Construye una función que evalua la condición dada. |
getAvailable(): Array<String> | Retorna una coleccion de los KeyedTemplates disponibles. (Devuelve un arreglo con los nombres de los templates) |
getKeyedTemplate(name: String): KeyedTemplate | Retorna el KeyedTemplate con el nombre dado. |
getKeyedTemplates(): Array<KeyedTemplate> | Retorna una colección de todos los KeyedTemplates registrados en la instancia TemplateBag . |
patchTemplate(name: String, context: any, oldVnode: VNode?): View | Emparcha un VNode existente, usando el context dado. Si no se provee un oldVnode , se crea una nueva instancia de View para el template especificado. |