Notify メッセージ通知 - Vant 4
🔔 Notify メッセージ通知
🎯 紹介
Notify コンポーネントはページの上部にメッセージ通知を表示し、コンポーネント呼び出しと関数呼び出しの2つの方法をサポートします。ユーザーに重要な情報フィードバックを即座に提供します!
📦 導入
以下の方法でグローバルにコンポーネントを登録します。詳細な登録方法についてはコンポーネントの登録を参照してください。
import { createApp } from'vue'; import { Notify } from'vant'; const app = createApp(); app.use(Notify);🚀 関数呼び出し
Notify を使いやすくするため、Vant は一連の補助関数を提供しています。これらの補助関数を通じて、グローバルなメッセージ通知をすばやく呼び出すことができます。
例えば、showNotify 関数を使用すると、呼び出し後にページに対応する通知が直接レンダリングされます。
import { showNotify } from'vant'; showNotify({ message: '通知' });🎯 コード例
🔧 基本的な使い方
最もシンプルなメッセージ通知です。ユーザーに重要なSMSを送るようなものです 📱
import { showNotify, closeNotify } from 'vant';
// 3秒後に自動的に閉じます。目覚まし時計のように正確です ⏰
showNotify('通知内容');
// 手動で閉じます。いつでもメッセージを消すことができます ✨
closeNotify();<template>
<van-cell-group>
<van-cell is-link title="基本用法" @click="showBasicNotify" />
<van-cell is-link title="手動で閉じる" @click="showManualNotify" />
</van-cell-group>
</template>
<script setup>
import { showNotify, closeNotify } from 'vant';
const showBasicNotify = () => {
showNotify('これは基本的な通知です 📢');
};
const showManualNotify = () => {
showNotify({
message: '任意の場所をクリックして閉じる',
duration: 0, // 自動的に閉じない
});
// 3秒後に手動で閉じる
setTimeout(() => {
closeNotify();
}, 3000);
};
</script>🎨 通知の種類
4種類の通知タイプがあります。交通信号のように明確でわかりやすいです 🚦
import { showNotify } from 'vant';
// プライマリ通知 - 青色の情報通知 💙
showNotify({ type: 'primary', message: 'プライマリ通知内容' });
// 成功通知 - 緑色の成功フィードバック 💚
showNotify({ type: 'success', message: '操作成功!' });
// 危険通知 - 赤色の警告情報 ❤️
showNotify({ type: 'danger', message: '操作失敗!' });
// 警告通知 - オレンジ色の注意情報 🧡
showNotify({ type: 'warning', message: '注意してください!' });<template>
<van-cell-group>
<van-cell is-link title="プライマリ通知" @click="showPrimary" />
<van-cell is-link title="成功通知" @click="showSuccess" />
<van-cell is-link title="危険通知" @click="showDanger" />
<van-cell is-link title="警告通知" @click="showWarning" />
</van-cell-group>
</template>
<script setup>
import { showNotify } from 'vant';
const showPrimary = () => {
showNotify({ type: 'primary', message: 'これはプライマリ通知です 💙' });
};
const showSuccess = () => {
showNotify({ type: 'success', message: '操作成功です 🎉' });
};
const showDanger = () => {
showNotify({ type: 'danger', message: 'エラーが発生しました ⚠️' });
};
const showWarning = () => {
showNotify({ type: 'warning', message: '確認してください ⚡' });
};
</script>🎨 カスタム通知
通知をより個性的にしましょう。専用のメッセージカードをカスタマイズするようなものです 🎨
import { showNotify } from 'vant';
// カスタムカラー、専属スタイルを作成 🌈
showNotify({
message: 'カスタムカラー通知',
color: '#ad0000',
background: '#ffe1e1',
});
// カスタム位置、下部から表示 ⬆️
showNotify({
message: '下部から表示される通知',
position: 'bottom',
});
// カスタム期間、すばやく表示 ⚡
showNotify({
message: '1秒後に消えます',
duration: 1000,
});<template>
<van-cell-group>
<van-cell is-link title="カスタムカラー" @click="showCustomColor" />
<van-cell is-link title="下部から表示" @click="showBottom" />
<van-cell is-link title="カスタム期間" @click="showCustomDuration" />
</van-cell-group>
</template>
<script setup>
import { showNotify } from 'vant';
const showCustomColor = () => {
showNotify({
message: 'ピンクテーマの通知 💗',
color: '#fff',
background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
});
};
const showBottom = () => {
showNotify({
message: '下部から現れました 👋',
position: 'bottom',
});
};
const showCustomDuration = () => {
showNotify({
message: '1秒間だけ表示します ⚡',
duration: 1000,
});
};
</script>🧩 Notify コンポーネントの使用
より複雑な内容が必要な場合、コンポーネント呼び出しはブロックを組み立てるように柔軟です 🧩
<template>
<div>
<van-cell is-link title="コンポーネント呼び出し" @click="showComponentNotify" />
<van-notify v-model:show="show" type="success">
<van-icon name="bell" />
カスタムコンテンツの通知 🔔
</van-notify>
</div>
</template>
<script setup>
import { ref } from 'vue';
const show = ref(false);
const showComponentNotify = () => {
show.value = true;
// 2秒後に自動的に閉じる
setTimeout(() => {
show.value = false;
}, 2000);
};
</script>📋 API
🔧 メソッド
Vant では以下の Notify に関連する補助関数がエクスポートされています:
| メソッド名 | 説明 | パラメータ | 戻り値 |
|---|---|---|---|
| showNotify | ページの上部に Notify を表示します。信号弾を発射するように 🚀 | NotifyOptions | string | notify インスタンス |
| closeNotify | 現在表示されている Notify を閉じます。メッセージを静かに消します ✨ | - | void |
| setNotifyDefaultOptions | デフォルトの設定を変更し、すべての showNotify 呼び出しに影響します ⚙️ | NotifyOptions | void |
| resetNotifyDefaultOptions | デフォルトの設定をリセットし、工場出荷時の設定に戻します 🔄 | - | void |
🎛️ NotifyOptions
showNotify などのメソッドを呼び出すとき、以下のオプションを渡すことができます:
| パラメータ | 説明 | 型 | デフォルト値 |
|---|---|---|---|
| type | タイプ、primary success warning から選択可能、通知の視覚スタイルを決定 🎨 | NotifyType | danger |
| message | 表示テキスト、\n による改行をサポート、メッセージの中核内容 📝 | string | - |
| duration | 表示時間(ms)、0 の場合、notify は消えません ⏰ | number | string | 3000 |
| zIndex | コンポーネントの z-index 階層を固定値に設定します 📚 | number | string | 2000+ |
| position | 表示位置、bottom から選択可能、メッセージの表示位置を制御 📍 | NotifyPosition | top |
| color | フォントカラー、文字をより目立たせます 🎨 | string | white |
| background | 背景色、視覚的な雰囲気を作り出します 🌈 | string | - |
| className | カスタムクラス名、個性的なスタイルを追加 🎭 | string | Array | object | - |
| lockScroll | 背景のスクロールをロックするかどうか、ページのスクロールによる干渉を防ぎます 🔒 | boolean | false |
| teleport | マウント先のノードを指定、Teleport コンポーネントの to 属性 と同等 🎯 | string | Element | - |
| onClick | クリック時のコールバック関数、ユーザーの操作に反応 👆 | (event: MouseEvent): void | - |
| onOpened | 完全に表示された後のコールバック関数、通知が完全に表示されたときにトリガー 🎪 | () => void | - |
| onClose | 閉じるときのコールバック関数、通知が閉じるときにトリガー 👋 | () => void | - |
🎛️ プロパティ
Notify をコンポーネントとして呼び出す場合、以下のプロパティをサポートします:
| パラメータ | 説明 | 型 | デフォルト値 |
|---|---|---|---|
| v-model:show | 通知を表示するかどうか、通知の表示状態を制御 👁️ | boolean | false |
| type | タイプ、primary success warning から選択可能、通知の視覚スタイルを決定 🎨 | NotifyType | danger |
| message | 表示テキスト、\n による改行をサポート、メッセージの中核内容 📝 | string | - |
| z-index | コンポーネントの z-index 階層を固定値に設定します 📚 | number | string | 2000+ |
| position | 表示位置、bottom から選択可能、メッセージの表示位置を制御 📍 | NotifyPosition | top |
| color | フォントカラー、文字をより目立たせます 🎨 | string | white |
| background | 背景色、視覚的な雰囲気を作り出します 🌈 | string | - |
| class-name | カスタムクラス名、個性的なスタイルを追加 🎭 | string | Array | object | - |
| lock-scroll | 背景のスクロールをロックするかどうか、ページのスクロールによる干渉を防ぎます 🔒 | boolean | false |
| teleport | マウント先のノードを指定、Teleport コンポーネントの to 属性 と同等 🎯 | string | Element | - |
🎪 イベント
Notify をコンポーネントとして呼び出す場合、以下のイベントをサポートします:
| イベント名 | 説明 | コールバック引数 |
|---|---|---|
| click | クリック時のコールバック関数、ユーザーの操作に反応 👆 | event: MouseEvent |
| close | 閉じるときのコールバック関数、通知が閉じるときにトリガー 👋 | - |
| opened | 完全に表示された後のコールバック関数、通知が完全に表示されたときにトリガー 🎪 | - |
🎰 スロット
Notify をコンポーネントとして呼び出す場合、以下のスロットをサポートします:
| 名前 | 説明 |
|---|---|
| default | カスタムコンテンツ、アイコンやボタンなどの要素を追加可能 🧩 |
📝 型定義
コンポーネントは以下の型定義をエクスポートします:
import type {
NotifyType,
NotifyProps,
NotifyOptions,
NotifyPosition,
} from 'vant';🎨 テーマカスタマイズ
🎛️ スタイル変数
コンポーネントは以下の CSS 変数を提供しており、カスタムスタイルに使用できます。使用方法については ConfigProvider コンポーネント を参照してください。
| 名前 | デフォルト値 | 説明 |
|---|---|---|
| --van-notify-text-color | var(--van-white) | 文字の色 ✏️ |
| --van-notify-padding | var(--van-padding-xs) var(--van-padding-md) | 内側の余白 📦 |
| --van-notify-font-size | var(--van-font-size-md) | フォントサイズ 📝 |
| --van-notify-line-height | var(--van-line-height-md) | 行の高さ 📐 |
| --van-notify-primary-background | var(--van-primary-color) | プライマリ通知の背景色 💙 |
| --van-notify-success-background | var(--van-success-color) | 成功通知の背景色 💚 |
| --van-notify-danger-background | var(--van-danger-color) | 危険通知の背景色 ❤️ |
| --van-notify-warning-background | var(--van-warning-color) | 警告通知の背景色 🧡 |
よくある質問
showNotify を参照するとコンパイルエラーが発生する?
showNotify メソッドを参照する際に以下のエラーが発生した場合、プロジェクトで babel-plugin-import プラグインが使用されているため、コードが誤ってコンパイルされていることを示しています。
These dependencies were not found: * vant/es/show-notify in ./src/xxx.js * vant/es/show-notify/style in ./src/xxx.jsVant はバージョン 4.0 から babel-plugin-import プラグインをサポートしなくなりました。移行ガイド を参照して、このプラグインを削除してください。
📚 関連文書
- Toast トースト - トーストコンポーネント
- Dialog ダイアログ - ダイアログコンポーネント
- NoticeBar 通知バー - 通知バーコンポーネント
- Overlay オーバーレイ - オーバーレイコンポーネント