Vue CLIのtitleタグやmetaタグの設定方法

Vue CLIでのfaviconの変更方法は過去に記事にしましたが、titleタグについて触れていませんでした。
Vue CLIはデフォルトだとプロジェクト名が全ページ共通でついてしまいます。
今回はtitleタグやmetaタグの設定方法についてまとめておきます。
Vue Routerを使用して各記事に設定する
Vue Routerを使っている場合はroutesに新たにタイトルとディスクリプションの情報を追加します。
const routes = [
{
path: '/',
name: 'Home',
component: Home,
meta: { title: 'ページタイトル', desc: 'ディスクリプションを記述' }
}
]あとはこの情報を引っ張ってきて、App.vueでページが変更するたびにセットするように処理を追加します。
export default {
methods : {
setMeta(route){
// タイトルを設定
if(route.meta.title){
let setTitle = route.meta.title;
document.title = setTitle;
}
// ディスクリプションを設定
if(route.meta.desc){
let setDesc = route.meta.desc;
document.querySelector("meta[name='description']").setAttribute('content', setDesc)
}
}
},
mounted(){
let route = this.$route;
this.setMeta(route);
},
watch: {
'$route' (route, from) {
this.setMeta(route);
}
}
}やっていることはsetMetaという先ほど追加したタイトルとディスクリプションを取ってきてセットするメソッドを作り、mountedで初回、watchの'$route' (routeInstance, from)でVue Routerを使って遷移した時に発火させているだけです。
あとはpublic/index.htmlを開いて、下記のmetaタグを追加します。
<meta name="description"><title>タグはデフォルトであるのですが、<meta name="description">のタグはないため、用意しておく必要があるからです。


SourceTreeでマージ時に「fatal: You have not concluded your merge (MERGE_HEAD exists).」と表示される場合の対処法
Vue CLIでGA4を導入する方法
Visual Studio Codeの文字サイズやタブサイズの設定方法
Visual Studio Codeとスニペット・ドキュメント検索アプリの「Dash」連携を行うプラグイン
常時SSL化の設定をしたのに「保護された通信」が表示されない時はパスにHTTPが残っているのかも?
mac環境にnodebrew経由でNode.jsをインストールしてバージョンを管理する方法
Apacheのテストページを非表示にする方法
スクロールしてもテーブルヘッダーが追尾するテーブルの作り方
gulp 4.0から新しく加わったseriesとparallelについての備忘録
gulpでSSI(サーバーサイドインクルード)を使用する「connect-ssi」
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
テキストエディタ・ノートアプリ関連のショートカットキーをKeyboard Maestroで統一する
Path Finderを使ってキーボードだけでファイル操作する方法(応用編)
macOSのコマンドパレット比較!SpotlightとAlfred、Raycastどれを使えばいい?
1つのノートアプリにすべて集約するのをやめた理由|2025年時点のノートアプリの使い分け
Notionログイン時の「マジックリンク」「ログインコード」をやめて普通のパスワードを使う
AlfredでNotion内の検索ができるようになるワークフロー「Notion Search」
Gitで1行しか変更していないはずのに全行変更した判定になってしまう
Macでアプリごとに音量を調節できるアプリ「Background Music」
Macのターミナルでパスワード付きのZIPファイルを作成する方法