vue.js - 如何在 NuxtJS 中构建对 SEO 友好的路由?
问题描述
我是 NuxtJS 的新手。我的页面由导航栏/菜单、列出所有文章的博客页面和几个主要是静态页面组成。(像大多数公司网站一样)
我正在从 Strapi API 中检索我的数据,我只能通过它们的 ID 获取单个条目。
我必须做的:
当用户点击导航栏链接时,我需要将相应文章/帖子的 ID 传递给文章组件,以便从 API 中检索文章。到目前为止它工作得很好,但是通过路由器参数来做,一篇文章会有一个类似的 URLhttps://www.example.com/posts/63ndjk736rmndhjsnk736r
我想做的事:
我想要一个带有 slug 的 URL,https://www.example.com/posts/my-first-Post
并且仍然将 ID 传递给文章组件/页面。
最好的方法是什么?
解决方案
您可以使用query
. 下面是一些例子:
我有一些数据:
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>
您的路线如何显示:
http://example.com/posts/my-first-post?id=63ndjk736rmndhjsnk736r
你需要什么:
- 创建动态路由 -> https://nuxtjs.org/guide/routing/#dynamic-routes
- 通行证
query
命名id
,这是您的单一条目 ID - 获取查询 (id) 并使用查询 id 获取您的单个条目:
const postId = this.$route.query.id
推荐阅读
- scope - 如何在 Julia 中获取“do”块的值?
- javascript - 每次调用分配给它的属性时,如何让 Math.random 函数更新?
- c - 使用 fgets() 函数读取 .csv 文件
- javascript - 服务器和客户端路径冲突
- javascript - 在 Javascript 中迭代数组并创建条件逻辑的最佳方法是什么?
- python - Conda 找不到要安装的软件包
- redux - 我可以用来自 redux 的提供者从上下文中包装提供者吗?这
我可以用 redux 的 Provider 包装上下文中的 Provider 吗?下面示例中的 <AuthContext.Provider> 不是来自 redux。
return ( <Provider store={store}>
- sql-server - 如何在主表的插入语句中的行中添加序号?
- javascript - 您如何使用函数通过 Javascript 创建对象?
- javascript - 无法通过数组映射对象数组