使用トースト
トースト通知をアプリに表示するためのコンポーザブルです。
使用法
自動インポートされたuseToastコンポーザーを使用して、Toast通知を表示します。
<script setup lang="ts">
const toast = useToast()
function showToast() {
toast.add({
title: 'New message',
description: 'You have a new message from Benjamin.',
actions: [{
icon: 'i-lucide-reply',
label: 'Reply',
color: 'neutral',
variant: 'outline',
onClick: () => {
toast.add({ title: 'Reply sent', color: 'success' })
}
}]
})
}
</script>
<template>
<UButton label="Show toast" @click="showToast" />
</template>
useToastコンポーザブルはNuxtのuseStateを使用してトースト状態を管理し、アプリケーション全体の反応性を確保します。- Aはデフォルトでは一度に最大5個のトーストを表示します。この制限を超える新しいトーストを追加すると、最も古いトーストは自動的に削除されます。
Appコンポーネントのtoaster.maxプロパティで変更します。 - トーストを削除すると、実際に状態から削除されるまでに200 msの遅延があり、終了アニメーションを可能にします。
API
useToast()
useToastコンポーザブルはトースト通知をグローバルに管理するメソッドを提供します。
add
add(toast: Partial<Toast>): Toast
新しいトースト通知を追加します。
パラメーター
toast
Partial<Toast> required
以下のプロパティを持つ部分的な
Toastオブジェクト:id
string | number
トーストの一意の識別子。指定されていない場合、一意のIDが生成されます。既存のIDを再利用すると、新しいものを追加する代わりにトーストにマージされます。
open
boolean
トーストが開いているかどうか。デフォルトは
trueです。title
string | VNode | (() => VNode)
タイトルは乾杯の際に。
description
string | VNode | (() => VNode)
トーストに表示される説明。
icon
string
トーストに表示されるアイコン。
avatar
AvatarProps
トーストに表示されるアバター。Avatarを参照。
color
string
トーストの色。デフォルトは
primaryです。orientation
'horizontal' | 'vertical'
コンテンツとアクションの向き。デフォルトは
verticalです。close
boolean | Omit<ButtonProps, LinkPropsKeys>
閉じるボタンをカスタマイズまたは非表示にします(
false値)。デフォルトはtrueです。closeIcon
string
閉じるボタンに表示されたアイコン。
actions
ButtonProps[]
トーストに表示されるアクション。Buttonを参照。
progress
boolean | Pick<ProgressProps, 'color' | 'ui'>
プログレスバーをカスタマイズまたは非表示にします(
false値)。デフォルトはtrueです。duration
number
トーストが自動クローズされるまでの長さ(ミリ秒単位)。デフォルトは
5000です。手動でクローズされるまでトーストを開いたままにするには0に設定します。Appコンポーネントでグローバルに設定することもできます。onClick
(toast: Toast) => void
トーストがクリックされたときに呼び出されるコールバック関数。
onUpdateOpen
(open: boolean) => void
トーストのオープン状態が変化したときに呼び出されるコールバック関数です。トーストがクローズ(期限切れまたは却下)したときにアクションを実行するのに便利です。
type
'foreground' | 'background'
支援技術がトーストをアナウンスする方法。ユーザーが直接操作した結果ではないトーストには
backgroundを使用してください。as
any
トーストがレンダリングする要素またはコンポーネント。デフォルトは
liです。** Returns:**追加された完全なToastオブジェクト。
<script setup lang="ts">
const toast = useToast()
function showToast() {
toast.add({
title: 'Success',
description: 'Your action was completed successfully.',
color: 'success'
})
}
</script>
update
update(id: string | number, toast: Omit<Partial<Toast>, 'id'>): void
既存のトースト通知を更新します。
パラメータ
id
string | number required
更新するトーストの一意の識別子。
toast
Omit<Partial<Toast>, 'id'> required
更新するプロパティを持つ部分的な
Toastオブジェクト。idは変更できず、トーストは再開され、durationは再度渡さない限りリセットされます。<script setup lang="ts">
const toast = useToast()
function updateToast(id: string | number) {
toast.update(id, {
title: 'Updated Toast',
description: 'This toast has been updated.'
})
}
</script>
remove
remove(id: string | number): void
トースト通知を削除します。
パラメータ
id
string | number required
削除するトーストの一意の識別子。
<script setup lang="ts">
const toast = useToast()
function removeToast(id: string | number) {
toast.remove(id)
}
</script>
clear
clear(): void
トースト通知をすべて削除する。
<script setup lang="ts">
const toast = useToast()
function clearAllToasts() {
toast.clear()
}
</script>
トースト
toasts: Ref<Toast[]>
現在のすべてのトースト通知を含むリアクティブ配列。
<script setup lang="ts">
const { toasts } = useToast()
</script>
<template>
<div>
<pre>{{ toasts }}</pre>
</div>
</template>