Vueで下記のようなAPI通信をしていたときに詰まったので、メモします。
API通信でPOSTリクエストの処理後に一覧表示をさせるのですが、タイマーなどを使っている事情で、データ取得後に一度画面をリロードする必要がありました。
方法として下記の記事のようにVueRouterを使用する方法があったのですが、仕様の変更によりうまく動かなくなっているようです。
そこで、かなり力技ですが素のjsで実装したところ、とても簡潔に解決しました(全部Vueでやらなきゃと視野が狭まっていましたね)
submit() {
let data = {
//省略
};
axios.post('/api/store',data)
.catch(error => {
alert(error);
})
//下記の一文を終わらせたい処理の下に追加する
window.location.reload();
},
これで無事、API通信後に画面がリロードされるようになりました!!
SPAのプロジェクトを前提としているので画面遷移は、対象外ですが、うまく組み合わせれば、場面遷移とリロードもできそうですね。
【追記:リンクを追加する方法】
下記のような記載で好きなURLへ飛ばせました。
submit() {
let data = {
//省略
};
axios.post('/api/store',data)
.catch(error => {
alert(error);
})
//飛ばしたいリンクを指定する
window.location.href = '/';
},