Vue.js 如何在NuxtJS中构建SEO友好的路由?
我是NuxtJS的新手。我的页面由导航栏/菜单、包含所有文章的博客页面和两个大部分是静态页面组成。(与大多数公司网站一样) 我从一个Strapi API中检索数据,在这里我只能通过它们的ID获取单个条目 我必须做的事情: 当用户单击navbar链接时,我需要将相应文章/帖子的ID传递给文章组件,以便从API检索文章。到目前为止,它工作得很好,但通过路由器参数,一篇文章将有一个类似Vue.js 如何在NuxtJS中构建SEO友好的路由?,vue.js,nuxt.js,server-side-rendering,headless,strapi,Vue.js,Nuxt.js,Server Side Rendering,Headless,Strapi,我是NuxtJS的新手。我的页面由导航栏/菜单、包含所有文章的博客页面和两个大部分是静态页面组成。(与大多数公司网站一样) 我从一个Strapi API中检索数据,在这里我只能通过它们的ID获取单个条目 我必须做的事情: 当用户单击navbar链接时,我需要将相应文章/帖子的ID传递给文章组件,以便从API检索文章。到目前为止,它工作得很好,但通过路由器参数,一篇文章将有一个类似https://www.example.com/posts/63ndjk736rmndhjsnk736r 我想做什么:
https://www.example.com/posts/63ndjk736rmndhjsnk736r
我想做什么:
我想要一个带有slughttps://www.example.com/posts/my-first-Post
并且仍然将ID传递给文章组件/页面
最好的方法是什么?您可以在pages文件夹中使用like
\u slug.vue
你的路线是这样的
{
name: 'posts-slug',
path: '/posts/:slug?',
component: 'pages/posts/_slug.vue'
}
然后创建一个新的vue文件
export default {
validate ({ params }) {
return /^\d+$/.test(params.id)
}
}
这样,您还可以访问参数,您可以在pages文件夹中使用like
\u slug.vue
你的路线是这样的
{
name: 'posts-slug',
path: '/posts/:slug?',
component: 'pages/posts/_slug.vue'
}
然后创建一个新的vue文件
export default {
validate ({ params }) {
return /^\d+$/.test(params.id)
}
}
通过这种方式,您还可以访问参数您可以使用
查询
。以下是一些例子:
我有一些数据:
data = [{id: "63ndjk736rmndhjsnk736r", name: "my-first-post"}, {id: "88ndjk736rmndhjsnk736r", name: "my-second-post"}]
在我的导航栏列表中:
<template v-for="(item, index) in data" key="index">
<router-link :to="{ path: '/posts/' + item.name, query: { id: 'item.id' }}"
>{{item.name}}</router-link>
</template>
您需要的:
query
namedid
这是您的单个条目idconst postId=this.$route.query.id
您可以使用
查询
。以下是一些例子:
我有一些数据:
data = [{id: "63ndjk736rmndhjsnk736r", name: "my-first-post"}, {id: "88ndjk736rmndhjsnk736r", name: "my-second-post"}]
在我的导航栏列表中:
<template v-for="(item, index) in data" key="index">
<router-link :to="{ path: '/posts/' + item.name, query: { id: 'item.id' }}"
>{{item.name}}</router-link>
</template>
您需要的:
query
namedid
这是您的单个条目idconst postId=this.$route.query.id