原始文档位于https://github.com/developerw...现在移动到这里。学习Next.js:入门学习Next.js:在页面之间导航学习Next.js:使用共享组件学习Next.js:创建动态内容学习Next.js:使用路由掩码创建干净的URL学习Next.js:服务器支持清理URL学习Next.js:获取数据学习Next.js:部署创建动态页面现在,我们知道如何使用多个页面创建一个基本的Next.js应用程序。为了创建页面,我们需要在磁盘上创建实际文件。但是在实际应用场景中,我们通常需要通过数据创建动态页面,动态展示页面内容。在Next.js中有多种方法可以实现这一点。首先,我们使用查询字符串创建一个动态页面。我们创建一个简单的博客应用程序。在索引页面上显示博客列表。当你点击博客标题时,你可以看到博客的具体内容。现在,让我们开始创建博客程序。设置为了学习本课程,您需要有一个示例Next.js应用程序。为此,您可以下载以下应用程序作为学习示例:gitclonehttps://github.com/arunoda/learnnextjs-demo.gitcdlearnnextjs-demogitcheckoutusing-shared-components可以使用以下命令运行:npminstallnpmrundev现在,访问http://localhost:3000/。添加博客列表首先,让我们在首页添加一个博客标题列表,在pages/index.js模块文件中添加如下代码。importLayoutfrom'../components/MyLayout.js'importLinkfrom'next/link'constPostLink=(props)=>(
{props.title})导出tdefault()=>(
我的博客
)然后,在http://localhost:3000,你会看到如下内容:passingdatathroughquerystringWepassingdatathroughquerystringparameters,在本例中,它是“title”查询字符串,表示博客的标题。接下来,我们为博客的标题实现一个自定义的PostLink组件。constPostLink=(props)=>(
{props.title})创建一个博客页面创建一个博客页面来显示博客内容,为此我们需要从查询字符串中获取标题。创建一个pages/post.js文件并添加以下内容:importLayoutfrom'../components/MyLayout.js'exportdefault(props)=>(
{props.url.query.title}
这是博文内容。
)现在,页面看起来像这样:每个页面都有一个“URL”属性,其中包含与当前URL相关的详细信息这里我们使用包含查询字符串参数的“查询”对象然后,我们从props.url.query.title获取博客的标题现在,我们稍微修改一下,将pages/post.js的内容替换为:importLayoutfrom'../components/MyLayout.js'constContent=(props)=>(
{props.url.query.title
这是博文内容。
)exportdefault()=>(
)然后访问http://localhost:3000/post?title=Hello%20Next.js效果如何?你看到的特殊属性“url”,代码会抛出错误页面如下图:这是因为url属性只是暴露给了页面的根主键。它不会暴露给页面中的其他组件。但如果有必要,您可以将url属性传递给其他组件,如下所示。exportdefault(props)=>(
)现在我们终于学会了如何使用查询字符串来创建动态页面。但这仅仅是开始。动态页面需要更多的信息来呈现,我们不太可能通过查询字符串传递所有信息。我们想要一个像这样的干净的URL:http://localhost:3000/blog/hello-nextjs。接下来,我们将了解所有相关信息。这是基金会的其他一切。