現在のページの状態を保持したまま、ユーザーに情報を提供します。 ### 基本的な使い方 dialog は dialog ボックスをポップアップ表示します。 :::demo `model-value / v-model` 属性に `Boolean` を設定し、それが `true` のときに dialog を表示します。dialog は `body` と `footer` の 2 つの部分からなり、後者は `footer` という名前の `スロット` を必要とします。オプションの `title` 属性 (デフォルトでは空) はタイトルを定義するためのものです。最後に、この例では `before-close` がどのように使われるかを示します。 ```html click to open the Dialog This is a message ``` ::: :::tip `before-close` はユーザが閉じるアイコンか背景をクリックしたときにのみ動作します。footer`という名前のスロットにdialogを閉じるボタンがある場合、ボタンのクリックイベントハンドラに`before-close`と同じように`before-close` を追加することができます。 ::: ### カスタマイズ dialog の内容は何でも構いません、テーブルやフォームであっても構いません。この例では、要素テーブルとフォームを dialog で使う方法を示しています。 :::demo ```html open a Table nested Dialog open a Form nested Dialog ``` ::: ### ネストされた dialog ある dialog が他の dialog にネストになっている場合は `append-to-body` が必要です。 :::demo 通常、ネストになった dialog を使うことはお勧めしません。複数の dialog をページ上でレンダリングしたい場合は、単にそれらをフラットにして隣接することができます。dialog を別の dialog の中に入れ子にしなければならない場合は、入れ子にした dialog の `append-to-body` を true に設定すると、親ノードではなくボディに追加され、両方の dialog が正しくレンダリングされます。 ```html ``` ::: ### 中央揃えコンテンツ dialog の内容を中央揃えにすることができます。 :::demo `center` を `true` に設定すると、dialog のヘッダとフッタを水平方向に中央揃えにします。`center`は Dialog のヘッダとフッタにのみ影響します。dialog のボディは何でもいいので、中央揃えにすると見栄えが悪くなることがあります。ボディも中央揃えにしたい場合は、CSS を書く必要があります。 ```html Click to open the Dialog It should be noted that the content will not be aligned in center by default ``` ::: :::tip dialog の内容は遅延的にレンダリングされます。つまり、デフォルトのスロットは最初に開かれるまで DOM にレンダリングされません。したがって、DOM の操作を行ったり `ref` を使ってコンポーネントにアクセスする必要がある場合は、`open` イベントコールバックで行います。 ::: ### dialog 内の要素を破棄する (translation needed) 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 Click to open Dialog Notice: before dialog gets opened for the first time this node and the one bellow will not be rendered
Extra content (Not rendered)
``` :::tip 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. ::: ### 属性 | Attribute | Description | Type | Accepted Values | Default | | --------------------- | --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ | --------------- | ------- | | model-value / v-model | dialog の可視性 | boolean | — | — | | title | dialog のタイトルを指定します。名前付きスロットで渡すこともできます (次のテーブルを参照してください)。 | string | — | — | | width | dialog の幅 | string / number | — | 50% | | fullscreen | dialog が全画面を占めるかどうか | boolean | — | false | | top | dialogCSS の `margin-top` の値 | string | — | 15vh | | modal | マスクが表示されているかどうか | boolean | — | true | | append-to-body | dialog 自身をボディに追加するかどうかを指定します。入れ子になった dialog は、この属性を `true` に設定しなければなりません。 | boolean | — | false | | lock-scroll | dialog 表示中にボディのスクロールを無効にするかどうか | boolean | — | true | | custom-class | dialog 用のカスタムクラス名 | string | — | — | | open-delay | Time(milliseconds) before open | number | — | 0 | | close-delay | Time(milliseconds) before close | number | — | 0 | | close-on-click-modal | マスクをクリックして dialog を閉じることができるかどうか | boolean | — | true | | close-on-press-escape | ESC を押して dialog を閉じることができるかどうか | boolean | — | true | | show-close | 閉じるボタンを表示するかどうか | boolean | — | true | | before-close | コールバックを使用することで、dialog が閉じるのを防ぐことができます。 | function(done),done is used to close the Dialog | — | — | | center | ヘッダーとフッターを中央に配置するかどうか | boolean | — | false | | destroy-on-close | dialog を閉じたときに dialog 内の要素を破棄する | boolean | — | false | ### スロット | Name | Description | | ------ | --------------------- | | — | dialog の内容 | | title | dialog タイトルの内容 | | footer | dialog フッターの内容 | ### イベント | Event Name | Description | Parameters | | ---------- | --------------------------------------------------------------------- | ---------- | | open | dialog が開いたときにトリガーされます。 | — | | opened | dialog のオープニングアニメーションが終了したときにトリガーされます。 | — | | close | dialog が閉じたときにトリガーされます。 | — | | closed | dialog 終了アニメーションの終了時にトリガーされます。 | — |