# Vue Routerでページ遷移後にトーストを表示させる方法
URL: https://webrandum.net/vue-router-toast/
公開日: 2020-11-18
更新日: 2020-11-18
カテゴリー: コーディング
タグ: Vue CLI, Vue Router, Vue.js
出典: Webrandum(著者: サイトウ マサカズ)
Vue Routerを使ってページ遷移をしているとき、ページ遷移後のページで何かしらトーストを表示させたいときに、ページ遷移前のボタンで内容を指定できるようにする方法はないか試してみました。
非常に簡易的な作りなのですが、Vue Routerでページ遷移時にデータも一緒に持ってくるサンプルとしてご覧ください。
## トースト用のコンポーネント作成
まずはトースト用のコンポーネントを作成します。
(今回はVue3.0のComposition APIを使用)
とはいっても中身はテキストを表示するだけなのと、トースト内のテキストが入ったタイミングで表示されるようにしているので、propsはテキスト1つのみになります。
```
{{text}}
```
## Vue Routerでテキストを一緒に送信する
次に、遷移前のページから``で遷移させるときに、`to`属性ではなく`:to`属性を使用し、`params`オブジェクトを使ってトースター用のメッセージを追加します。
```
更新
```
`params`の他にもクエリの指定もできるようです。
| プロパティ | 値 |
| --- | --- |
| path | 遷移先のパス |
| --- | --- |
| name | 遷移先のページの名前 |
| --- | --- |
| params | 遷移時に一緒に渡したいデータ |
| --- | --- |
| query | クエリの指定({ item: '1' }と指定した場合はURLの末尾に?item=1が付く) |
| --- | --- |
## トーストの設置
あとは、トーストを設置したい場所にトーストのコンポーネントを設置します。
設置時には先ほど遷移前のページで指定した値を、`$route.params.toastText`で`props`の`text`に入れてあげます。
```
```
この指定をすることで、遷移後にトースト内にテキストが入り、トーストが表示されるようになります。
## その他のカスタマイズ
今回はかなりシンプルな作りにしましたが、渡すデータに`status`とかを追加して、「成功時」「エラー時」みたいな分岐を付けるのもできそうです。