Drawer
A veces, Dialog
no satisface nuestros requisitos, digamos que tiene un formulario masivo, o necesita espacio para mostrar algo como terminos & condiciones
, Drawer
tiene una API casi idéntica a Dialog
, pero introduce una experiencia de usuario diferente.
TIP
Dado que v-model es nativamente soportado para todos los componentes, visible.sync
ha sido desaprobado, use v-model="visibilityBinding"
para controlar la visibilidad del drawer actual.
Uso básico
Llamada de un drawer temporal, desde varias direcciones
Debe establecer model-value
para Drawer
como lo hace Dialog
para controlar la visibilidad, con un valor del tipo boolean
. Drawer
tiene tres partes: title
& body
& footer
, el title
es un slot con nombre, también puede establecer el título a través de un atributo llamado title
, por defecto a una cadena vacía, la parte body
es el área principal de Drawer
, con contenido definido por el usuario. Al abrir, Drawer
se expande desde la esquina derecha a la izquierda cuyo tamaño es 30% de la ventana del navegador por defecto. Puede cambiar ese comportamiento predeterminado estableciendo los atributos direction
y size
. Este caso de demostración también muestra cómo utilizar la API before-close
, consulte la sección Atributos para obtener más detalles
Sin título
Cuando ya no necesite un título, puede eliminarlo del drawer.
Establezca el atributo withHeader
a false, para eliminar el título del drawer, así puede tener más espacio en la pantalla. Si quiere ser accesible, asegúrese de establecer el atributo title
.
Contenido personalizado
Al igual que Dialog
, Drawer
se puede utilizar para mostrar una multitud de interacciones diversas.
Cabecera personalizada
El slot header
se puede utilizar para personalizar el área donde se muestra el título. Para mantener la accesibilidad, utilice el atributo title
cuando use el slot, o utilice la propiedad titleId
para especificar qué elemento debe ser leído como el título del diálogo.
Drawer anidados
También puede tener varias capas de Drawer
al igual que con Dialog
.
Si necesita varios drawer en diferentes capas, debe establecer el atributo append-to-body
en true
TIP
El contenido dentro del Drawer se renderiza de forma perezosa, lo que significa que el contenido dentro del Drawer no afectará al rendimiento inicial del renderizado, por lo que cualquier operación DOM debe realizarse a través de ref
o después de que se emita el evento open
.
TIP
Drawer proporciona una API llamada destroyOnClose
, que es una variable de bandera que indica que debe destruir el contenido de los hijos dentro de Drawer después de que se ha cerrado. Puede utilizar esta API en el ciclo de vida mounted
del componente para que sea llamado cada vez que se abra el Drawer.
API
Attributes
Nombre | Descripción | Tipo | Default |
---|---|---|---|
model-value / v-model | Si se muestra el Drawer | boolean | false |
append-to-body | Los controles deberían insertar Drawer en el elemento DocumentBody, los Drawer anidados deben asignar este parámetro a true | boolean | false |
append-to 2.8.0 | which element the Drawer appends to. Will override append-to-body | string | body |
lock-scroll | si el scroll del cuerpo está desactivado mientras se muestra el drawer | boolean | true |
before-close | Si se establece, se detendrá el procedimiento de cierre | Function | — |
close-on-click-modal | si el drawer puede ser cerrado haciendo clic en la máscara | boolean | true |
close-on-press-escape | Indica si el Drawer puede cerrarse pulsando ESC | boolean | true |
open-delay | Tiempo en (milisegundos) antes de abrir el drawer | number | 0 |
close-delay | Tiempo en (milisegundos) antes de cerrar el drawer | number | 0 |
destroy-on-close | Indica si los children deben ser destruidos después de cerrar el Drawer | boolean | false |
modal | Mostrará una capa de sombra | boolean | true |
direction | Dirección de apertura del Drawer | enum | rtl |
show-close | Se mostrará el botón de cerrar en la parte superior derecha del Drawer | boolean | true |
size | Si el Drawer está en modo horizontal, afecta a la propiedad width, de lo contrario afecta a la propiedad height, cuando el tamaño es tipo number , describe el tamaño por unidad de píxeles; cuando el tamaño es tipo string , se debe usar con notación x% , de lo contrario se interpretará como unidad de píxeles | number / string | 30% |
title | El título del Drawer, también se puede establecer por slot con nombre, las descripciones detalladas se pueden encontrar en el formulario de slot | string | — |
withHeader | Bandera que controla la existencia de la sección de cabecera, por defecto es verdadera, cuando withHeader tiene false, tanto el atributo tittle como el slot con nombre title dejaran de funcionar | boolean | true |
modal-class | Nombre extra de clase para capa de sombra | string | — |
z-index | establece z-index | number | — |
header-aria-level a11y | header's aria-level attribute | string | 2 |
custom-class deprecated | Extra class names for Drawer | string | — |
WARNING
custom-class
es deprecated y **será **removido en 2.3.0, por favor utilice class
.
Events
Nombre | Descripción | Type |
---|---|---|
open | Se dispara antes de que comience la animación de apertura del Drawer | Function |
opened | Se dispara cuando finaliza la animación de apertura del Drawer | Function |
close | Se dispara antes de que comience la animación de cierre del Drawer | Function |
closed | Se dispara después de que finalice la animación de cierre del Drawer | Function |
open-auto-focus | triggers after Drawer opens and content focused | Function |
close-auto-focus | triggers after Drawer closed and content focused | Function |
Slots
Nombre | Descripción |
---|---|
default | El contenido del Drawer |
header | Contenido de la cabecera del diálogo. Reemplazar esto elimina el título, pero no elimina el botón cerrar. |
footer | El pie de página de la sección del Drawer |
title deprecated | Funciona igual que el slot header. Use el slot header en lugar de este slot. |
Exposes
Nombre | Descripción |
---|---|
handleClose | Para cerrar Drawer, este método llamará a before-close . |
Fuente
Componentes • Style • Documentación