Step1. 安装:
$ npm install vue-meta --save
|
router.js
import Vue from 'vue' import Router from 'vue-router' import Meta from 'vue-meta'
Vue.use(Router) Vue.use(Meta)
export default new Router({
|
在任何一个component中都可以定义 metaInfo 属性
App.vue
<template> <div id="app"> <router-view></router-view> </div> </template>
<script> export default { name: 'App', metaInfo: {
|
Home.vue
<template> <div id="page"> <h1>这是首页</h1> </div> </template>
<script> export default { name: 'Home', metaInfo: { title: '这是一个首页',
|
About.vue
<template> <div id="page"> <h1>关于我们</h1> </div> </template>
<script> export default { name: 'About', metaInfo: {
|
如果想定义其他meta信息,可以使用vue-meta的API。
例如 meta
:
{ metaInfo: { meta: [ { charset: 'utf-8' }, { name: 'viewport', content: 'width=device-width, initial-scale=1' } ] } }
|
output :
<meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1">
|
异步请求数据定义
如果component中使用了异步请求数据,可以使用 metaInfo()
方法。
Post.vue:
<template> <div> <h1>{{{ title }}}</h1> </div> </template>
<script> export default { name: 'post', data () { return { title: '' description: '这是一篇文章...' } }, metaInfo () { return { title: this.title, meta: [ { vmid: 'description', name: 'description', content: this.description } ] } }, created () { this.initData() }, methods: { initData () { axios.get('some/url').then((resp) => {
|
这样就很轻松地完成了页面meta info的设定。
源作者:http://www.zhuyuwei.cn/2018/vue-meta-for-vuejs.html