Nuxt之错误页面和个性化meta标签

本文介绍如何在Nuxt.js中自定义错误页面及如何为特定页面设置个性化meta标签,实现SEO优化。通过创建自定义的错误页面和利用head钩子,可以提升用户体验并改善搜索引擎排名。

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

一. 错误页面

nuxt为我们提供默认的错误页面,但是常常不去用它,如果想使用自己的错误页面,只需要在默认布局文件夹下创建error.vue即可:

/layouts/error.vue:

<template>
  <div>
    <h2 v-if="error">404页面,客户端错误</h2>
    <h2 v-else>404页面,服务器错误</h2>
  </div>
</template>
<script>
  export default {
    props: ['error']
  }
</script>复制代码

代码用v-if进行判断错误类型,需要注意的是这个错误是你需要在<script>里进行声明的,如果不声明程序是找不到error.statusCode的。

二. 个性化meta标签

全局的meta标签是在nuxt.config.js的head中设置,有些时候我们需要对单个页面设置自己的meta标签,如:门户网站的新闻详情页

在打开 "news-1" 详情页的时候,我们传入了title字段。

/pages/news/index.vue:

<template>
  <div>
    <h2>News Index Page</h2>
    <P>NewsId: {{$route.params.newsId}}</P>
    <ul>
      <li>
        <nuxt-link :to="'/'">HOME</nuxt-link>
      </li>
      <li>
        <nuxt-link :to="{name: 'news-id',params: {id: 123,title: 'I am news'}}">
          news-1之新闻列表展示
        </nuxt-link>
      </li>
      <li>
        <nuxt-link :to="'/news/k'">news-2之错误页面展示</nuxt-link>
      </li>
    </ul>
  </div>
</template>复制代码

在 "news-1" 详情页,我们接收title字段。

/pages/news/_id.vue:

<template>
  <div>
    <h2>News-Content</h2>
    <p>NewsId: {{$route.params.id}}</p>
    <ul>
      <li>
        <nuxt-link :to="{name:'index'}">HOME</nuxt-link>
      </li>
    </ul>
  </div>
</template>
<script>
  export default {
    validate({params}) {
      return /^\d*$/.test(params.id)
    },
    data() {
      return {
        title: this.$route.params.title  //接收title字段
      }
    },
    head() {
      return {
        title: this.title,
        meta: [
          {hid: 'description',name: 'news1',content: 'this is news1'}
        ]
      }
    }
  }
</script>复制代码

在head钩子中设置当前详情页的seo

注意:为了避免子组件中的meta标签不能正确覆盖父组件中相同的标签而产生重复的现象,建议利用 hid 键为meta标签配一个唯一的标识编号。


本文引用于技术胖nuxt教程,感谢胖哥


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值