在Next.js中,如果'route.query'不是可用选项,你可以通过使用动态路由和参数来传递数据。
首先,你需要创建一个动态路由。在Next.js中,动态路由的文件名需要使用方括号([])括起来,例如[id].js
。在动态路由文件中,你可以使用getServerSideProps
或getStaticProps
函数来获取数据。
以下是一个示例,展示了如何在动态路由中获取数据:
// pages/[id].js
import { useRouter } from 'next/router';
const DynamicPage = ({ data }) => {
const router = useRouter();
const { id } = router.query;
return (
<div>
<h1>Dynamic Page</h1>
<p>Data: {data}</p>
<p>ID: {id}</p>
</div>
);
};
export async function getServerSideProps(context) {
const { query } = context;
const data = "This is the data for dynamic page";
return {
props: {
data,
},
};
}
export default DynamicPage;
在上面的示例中,我们使用getServerSideProps
函数获取数据并将其作为props传递给页面组件。在页面组件中,我们通过useRouter
钩子来获取动态路由参数,并在页面中展示数据和参数。
请注意,上述示例中的getServerSideProps
函数在每个请求时都会运行,这意味着数据将在服务器端生成。如果你希望在构建时生成静态页面,你可以使用getStaticProps
函数。
关于Next.js的动态路由,你可以参考腾讯云提供的Next.js文档: https://cloud.tencent.com/document/product/1302/56250
希望以上信息对你有帮助!如果还有其他问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云