Informe les utilisateurs tout en préservant l'état de la page.
### Usage
Le Dialog ouvre un modal personnalisable.
:::demo Configurez l'attribut `visible` avec un `Boolean`, un modal apparaîtra quand la valeur sera à `true`. Le Dialog possède deux parties: `body` et `footer`, ce-dernier nécessitant un `slot` appelé `footer`. L'attribut optionnel `title` (vide par défaut) définit le titre. Cet exemple montre également comment `before-close` peut être utilisé.
```html
<el-buttontype="text"@click="dialogVisible =true">Cliquez pour ouvrir le modal</el-button>
`before-close` ne fonctionne que quand l'utilisateur clique sur l'icône de fermeture en dehors du modal. S'il y a des boutons dans le `footer`, vous pouvez configurer `before-close` grâce à leur évènement click.
:::
### Personalisation
Le contenu du modal peut être n'importe quoi, tableau ou formulaire compris.
:::demo
```html
<!-- Table -->
<el-buttontype="text"@click="dialogTableVisible =true">Ouvrir un modal avec tableau</el-button>
Si un Dialog est imbriqué dans un autre Dialog, `append-to-body` est requis.
:::demo Normalement l'utilisation de Dialog imbriqué est déconseillée. Si vous avez besoin de plusieurs Dialogs sur la page, vous pouvez les aplatir afin qu'ils soit au même niveau. Si vous devez absolument utiliser un Dialog imbriqué, configurez l'attribut `append-to-body` du Dialog imbriqué à `true` et il sera ajouté au body au lieu de son noeud parent, afin d'avoir un affichage correct.
```html
<template>
<el-buttontype="text"@click="outerVisible =true">Ouvrir le modal extérieur</el-button>
:::demo Régler `center` à `true` centrera horizontalement le header et le footer. `center` n'affecte que le header et le footer. Le contenu du body pouvant être n'importe quoi, si vous désirez le centrer vous devrez ajouter des règles CSS.
```html
<el-buttontype="text"@click="centerDialogVisible =true">Cliquez pour ouvrir le modal</el-button>
Le contenu de Dialog bénéficie du lazy loading, ce qui signifie que le slot par défaut n'est pas généré par le DOM avant la première ouverture. Si vous avez besoin de manipuler le DOM ou d'accéder à un composant via `ref`, vous pouvez le faire avec la callback de l'évènement `open`.
When this is feature is enabled, the content under default slot will be destroyed with a `v-if` directive. Enable this when you have perf concerns.
:::demo Note that by enabling this feature, the content will not be rendered before `transition.beforeEnter` dispatched, there will only be `overlay``header(if any)``footer(if any)`.
```html
<el-buttontype="text"@click="centerDialogVisible =true">Click to open Dialog</el-button>
<el-dialog
title="Notice"
v-model="centerDialogVisible"
width="30%"
destroy-on-close
center>
<span>Notice: before dialog gets opened for the first time this node and the one bellow will not be rendered</span>
When using `modal` = false, please make sure that `append-to-body` was set to **true**, because `Dialog` was positioned by `position: relative`, when `modal` gets removed, `Dialog` will position itself based on the current position in the DOM, instead of `Document.Body`, thus the style will be messed up.