加载中...

nuxt动态设置关键词,描述,标题

页面的meta设置对于SEO的设置非常重要,比如你现在要作个新闻页面,那为了搜索引擎对新闻的收录,需要每个页面对新闻都有不同的title和meta设置。

首先了解nuxt下设置meta的方法

  • 借助 head 属性,Nuxt.js 可以在 nuxt.config.js 中配置应用的 meta 信息。
  1. module.exports = {
  2. /*
  3. ** Headers of the page
  4. */
  5. head: {
  6. title: ''前端小喵'', // 网站标题
  7. meta: [
  8. { charset: ''utf-8'' },
  9. { name: ''viewport'', content: ''width=device-width, initial-scale=1'' },
  10. { hid: ''description'', name: ''description'', content: ''此处是网站描述'' },
  11. { hid: ''keywords'', name: ''keywords'', content: ''此处是网站关键词'' }
  12. ],
  13. link: [
  14. { rel: ''icon'', type: ''image/x-icon'', href: ''/favicon.ico'' }
  15. ]
  16. }
  17. }

 

  • 组件中Nuxt.js 使用了 vue-meta 更新应用的 头部标签(Head) 和 html 属性
  1. head(){
  2. return{
  3. title: `前端小喵`,
  4. meta:[
  5. {hid:''description'',name:''description'',content: ''前端小喵''},
  6. {hid:''keywords'',name:''keywords'',content: ''前端小喵''}
  7. ]
  8. }
  9. }

动态设置meta信息

下面以一个新闻详情的meta信息设置为例:
首先从列表传参到详情页面获取meta信息,然后再通过this绑定到页面上。
/new页面,传id参数到new-id页面
来点假数据吧

  1. list: [
  2. {
  3. id: ''1'',
  4. title: ''前端小喵''
  5. },
  6. {
  7. id: ''2'',
  8. title: ''前端小喵''
  9. }
  10. ]
  1. <li v-for="(item, index) in list" :key="''list_''+item.id">
  2. <nuxt-link :to="`/new/${item.id}`" :title="item.title">
  3. {{item.title}}
  4. </nuxt-link>
  5. </li>
  6. ...

详情页面接收参数,从后台接口获取关键词,描述,标题
来点假数据吧

  1. {
  2. "code":0,
  3. "message":"success",
  4. "data":{
  5. "id":1,
  6. "title":"前端小喵",
  7. "keywords": "前端小喵",
  8. "description": "前端小喵"
  9. }
  10. }
  1. async asyncData({ store, params, error, req, query }) {
  2. try {
  3. const isServer = process.server
  4. const token = isServer ? req.cookies[TokenKey] : getToken()
  5. let { id } = params
  6. let par = {
  7. id: id
  8. }
  9. let [detialRes,] = await Promise.all([
  10. user_api_send(''/api/***********'', par, ''post'', token),
  11. ])
  12. return {
  13. detial: detialRes.data
  14. }
  15. } catch(err) {
  16. console.log(err)
  17. }
  18. },
  19. data() {
  20. return {
  21. detial: {
  22. }
  23. }
  24. }

设置head

  1. head(){
  2. return{
  3. title: `前端小喵-${this.detial.title}`,
  4. meta:[
  5. {hid:''description'',name:''description'',content: this.detial.description || ''前端小喵''},
  6. {hid:''keywords'',name:''keywords'',content: this.detial.keywords || ''前端小喵''}
  7. ]
  8. }
  9. }

这样就设置完成了。 

 

推荐阅读:

呕心沥血集齐史上最全 JavaScript最实用工具函数方法,建议收藏!