Vue.js APIで取得したデータでmetaタグ title, description, keywords を設定する

Vue.jsにあまり詳しくないので勉強しながらwebサイトを作っております。

vue-metaやvue-routerを使用する方法も模索したのですが、今回のサイトではバックエンドをAPIで別途構築してあり、フロントをVue.jsという構成としております。

その為、動的にAPIで取得したデータをmeta情報に設定したく思いました。詳細ページに表示するデータ毎にmeta情報も変えたい次第です。

APIはaxiosを使用しています。

スポンサーリンク

とりあえずコード

.vueファイルのscript部分です。

解説

createdされたタイミングでAPIに非同期でデータを取得します。取得したデータをdataに設定します。

別途dataをwatchしているので、非同期で更新されたdataを元にmeta情報をupdateしています。

最初はwatchではなく、computeを使用しようとしたのですが、非同期でAPIからデータを取得する為、watchでないと出来ませんでした。

あと、上記スクリプトは現在のmeta情報を変更する作りになっている為、index.htmlにてダミーでも枠(description, keywords)を準備しておく必要があります。

index.html

以上です。

誤り等ありましたらご指摘ください。参考まで。