在GatsbyJS中使用params创建路由可以通过以下步骤实现:
src/pages/post.js
。post.js
文件中,导入React
和gatsby
模块,并创建一个React组件。import React from "react"
import { graphql } from "gatsby"
const Post = ({ data }) => {
const post = data.markdownRemark
return (
<div>
<h1>{post.frontmatter.title}</h1>
<div dangerouslySetInnerHTML={{ __html: post.html }} />
</div>
)
}
export default Post
post.js
文件中,使用GraphQL查询获取路由参数并获取相应的数据。export const query = graphql`
query($slug: String!) {
markdownRemark(fields: { slug: { eq: $slug } }) {
frontmatter {
title
}
html
}
}
`
gatsby-node.js
文件中,创建动态路由并将参数传递给页面组件。exports.createPages = async ({ graphql, actions }) => {
const { createPage } = actions
const result = await graphql(`
query {
allMarkdownRemark {
edges {
node {
fields {
slug
}
}
}
}
}
`)
result.data.allMarkdownRemark.edges.forEach(({ node }) => {
createPage({
path: node.fields.slug,
component: path.resolve(`./src/pages/post.js`),
context: {
slug: node.fields.slug,
},
})
})
}
---
title: "My First Post"
slug: "/my-first-post"
---
通过以上步骤,你就可以在GatsbyJS中使用params创建路由。当访问/my-first-post
时,将会渲染post.js
组件,并根据参数获取相应的数据进行展示。
推荐的腾讯云相关产品:腾讯云云服务器(CVM)、腾讯云对象存储(COS)。
腾讯云云服务器(CVM)产品介绍链接地址:https://cloud.tencent.com/product/cvm
腾讯云对象存储(COS)产品介绍链接地址:https://cloud.tencent.com/product/cos
领取专属 10元无门槛券
手把手带您无忧上云