metainfo可以设置说明_vue 中使用 vue-meta-info

1,安装vue-meta-info

npm i vue-meta-info --save

2,在main.js文件中引入vue-meta-info

import Vue from 'vue'

import MetaInfo from 'vue-meta-info';

Vue.use(MetaInfo)

3,静态使用 metaInfo

...

export default {

metaInfo: {

title: 'My Example App', // set a title

meta: [{ // set meta

name: 'keyWords',

content: 'My Example App'

}]

link: [{ // set link

rel: 'asstes',

href: 'https://assets-cdn.github.com/'

}]

}

}

3,动态使用 metaInfo

...

export default {

name: 'async',

metaInfo () {

return {

title: this.pageName

}

},

data () {

return {

pageName: 'loading'

}

},

mounted () {

setTimeout(() => {

this.pageName = 'async'

}, 2000)

}

}

4,如果您使用了Vue SSR 来渲染页面,那么您需要注意的是:

由于没有动态更新,所有的生命周期钩子函数中,只有 beforeCreate 和 created 会在服务器端渲染(SSR)过程中被调用。

这就是说任何其他生命周期钩子函数中的代码(例如 beforeMount 或 mounted),只会在客户端执行。

此外还需要注意的是,你应该避免在 beforeCreate 和 created 生命周期时产生全局副作用的代码,

例如在其中使用 setInterval 设置 timer。在纯客户端(client-side only)的代码中,我们可以设置一个 timer,然后在 beforeDestroy 或 destroyed 生命周期时将其销毁。

但是,由于在 SSR 期间并不会调用销毁钩子函数,所以 timer 将永远保留下来。为了避免这种情况,请将副作用代码移动到 beforeMount 或 mounted 生命周期中。

5,基于以上约束,我们目前可以使用静态的数据来渲染我们的metaInfo,下面给出一个使用示例:

...

export default {

metaInfo: {

title: 'My Example App', // set a title

meta: [{ // set meta

name: 'keyWords',

content: 'My Example App'

}]

link: [{ // set link

rel: 'asstes',

href: 'https://assets-cdn.github.com/'

}]

}

}

此时vueMetaInfo会帮我们在ssr的context中挂载出一个title变量和一个render对象。类似于这样

context = {

...

title: 'My Example App',

render: {

meta: function () { ... },

link: function () { ... }

}

}

至此,我们可以改造我们的模板:

{{title}}

{{{render.meta && render.meta()}}}

{{{render.link && render.link()}}}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值