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

本文详细介绍了如何在 Nuxt.js 框架中利用 vue-meta 进行 SEO 优化,特别是针对新闻页面的 meta 设置。通过在 nuxt.config.js 和组件中动态设置 title、description 和 keywords,确保每个新闻页面都有独特的元信息,以利于搜索引擎收录。同时,展示了如何从列表页传递参数到详情页,并根据后台接口数据动态更新 meta 内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

 

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

动态设置meta信息

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

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

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

{
  "code":0,
  "message":"success",
  "data":{
    "id":1,
    "title":"前端小喵",
    "keywords": "前端小喵",
    "description": "前端小喵"
  }
}
async asyncData({ store, params, error, req, query }) {
  try {
    const isServer = process.server
    const token = isServer ? req.cookies[TokenKey] : getToken()
    let { id } = params
    let par = {
      id: id
    }
    let [detialRes,] = await Promise.all([
      user_api_send('/api/***********', par, 'post', token),
    ])
    return {
      detial: detialRes.data
    }
  } catch(err) {
    console.log(err)
  }
},
data() {
  return {
    detial: {
      
    }
  }
}

设置head

head(){
  return{
    title: `前端小喵-${this.detial.title}`,
    meta:[
      {hid:'description',name:'description',content: this.detial.description || '前端小喵'},
      {hid:'keywords',name:'keywords',content: this.detial.keywords || '前端小喵'}
    ]
  }
}

这样就设置完成了。 

 

推荐阅读:

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

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

短暂又灿烂的

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值