[英]how can I use slug before patName in next.js?
I am using next.js and graphql now.我现在正在使用 next.js 和 graphql。
I need to set the workspace name in url.我需要在 url 中设置工作区名称。
localhost/[workspace slug]/memeber
localhost/[workspace slug]/admin
like that像那样
Can you help me?你能帮助我吗?
If you want to implement dynaming routing you can use Next.js built in routing system , for example with last version of next.js you can create a folder inside pages
called workspace
, inside workspace
a folder called [id]
which containes a file ex.如果你想实现动态路由,你可以使用 Next.js 内置在路由系统中,例如,在 next.js 的最新版本中,你可以在名为workspace
的pages
内创建一个文件夹,在workspace
空间内创建一个名为[id]
的文件夹,其中包含一个文件 ex。 [role].js
. [role].js
。
So a route like /workspace/1234/admin
will be automatically matched by the server.所以像/workspace/1234/admin
这样的路由会被服务器自动匹配。
Otherwise you can use a custom server like express and use something like this:否则,您可以使用 express 之类的自定义服务器并使用以下内容:
server.get('/:workspaceSlug/admin', (req, res) => {
const { workspaceSlug} = req.params
return app.render(req, res, '/admin', {workspaceSlug})
})
server.get('/:workspaceSlug/member', (req, res) => {
const { workspaceSlug} = req.params
return app.render(req, res, '/member', {workspaceSlug})
})
Inside folder "pages" create a folder called [slug] In that folder create admin.js and member.js.在文件夹“pages”中创建一个名为 [slug] 的文件夹在该文件夹中创建 admin.js 和 member.js。 This way you can access localhost/[slug]/member & localhost/[slug]/admin.这样你就可以访问 localhost/[slug]/member & localhost/[slug]/admin。
pages
|--[slug]
|--admin.js
|--member.js
Inside the page, you can retrieve the value of [slug] by using useRouter
在页面内部,您可以使用useRouter
检索 [slug] 的值
admin.js管理员.js
import { useRouter } from "next/router";
const Admin = (query) => {
const router = useRouter();
return (
<div>
<h1>Admin</h1>
<p>{router.query.id}</p>
</div>
);
};
export default Admin;
member.js:成员.js:
import { useRouter } from "next/router";
const Member = (query) => {
const router = useRouter();
return (
<div>
<h1>Member</h1>
<p>{router.query.id}</p>
</div>
);
};
export default Member;
Create a folder named [slug] inside pages, inside that add your files.在页面内创建一个名为 [slug] 的文件夹,在其中添加您的文件。 After that you will be able to use your files for example:之后,您将能够使用您的文件,例如:
localhost/men/member本地主机/人/成员
localhost/women/member本地主机/女性/成员
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.