WebDesigner's Memorandumウェブデザイナーの備忘録

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

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">のタグはないため、用意しておく必要があるからです。

著者について

プロフィール画像

サイトウ マサカズ@31mskz10

1997年生まれ。2016年から専門学校でデザインについて勉強。卒業後は神戸の制作会社「N'sCreates」にウェブデザイナーとして入社。このブログでは自分の備忘録も兼ねて、ウェブに関する記事や制作環境を効率的に行うための記事を書いています。

Twitterをフォロー Facebookでいいね