フロント開発をする中、head要素をvueで管理する方法として、
vue-headというライブラリを導入する機会があったので、備忘録としてまとめておく。
前提
vue-routerを導入している事。
※この記事ではvue-routerについての解説は行いません。
手順
導入自体はとても簡単。
まずはnpmコマンド
でパッケージをインストール。
npm install vue-head --save
今回はmain.js
で読み込みます。
main.js
import Vue from 'vue'
import VueRouter from 'vue-router'
import VueHead from 'vue-head'
Vue.use(VueHead)
Vue.use(VueRouter)
あとは各ページのコンポーネント毎にタイトルとmetaタグ設定すればOK。
home.vue
export default {
head: {
title() {
return {
inner: 'App',
separator: '|',
complement: 'page',
}
},
meta: [
{ name: 'description', content: 'My description', id: 'desc' }
]
}
...
}
}
router.js
で表示するページ毎のタイトルを定義しておいて、
複数ページで共有するコンポーネントがあれば、簡単にタイトルやmetaの切り替えが出来ます。
更に共通の内容があれば、Mixinする事でよりシンプルに書く事が出来ます。