Javascript 在NextJS中,Express routes和客户端routes之间的关系是什么?
我是一名NextJS新手,试图了解Express中定义的路由与NextJS的“客户端”React部分中定义的路由之间的关系。具体来说,如果在快车侧定义路线,例如Javascript 在NextJS中,Express routes和客户端routes之间的关系是什么?,javascript,reactjs,next.js,Javascript,Reactjs,Next.js,我是一名NextJS新手,试图了解Express中定义的路由与NextJS的“客户端”React部分中定义的路由之间的关系。具体来说,如果在快车侧定义路线,例如 router.get("/aLonelyRoute",(req,res)=> { res.end("You made it!") }) 客户端没有相应的“页面”(React应用程序中有以下页面 pages/index.js pages/something.js pages/another.js ),如果从浏览器向/aLo
router.get("/aLonelyRoute",(req,res)=> {
res.end("You made it!")
})
客户端没有相应的“页面”(React应用程序中有以下页面
pages/index.js
pages/something.js
pages/another.js
),如果从浏览器向/aLonelyRoute
发出请求,是否总是从Express server提供服务,而不是从客户端提供
此外,如果Express服务器提供的页面*确实*对应于“客户端”上反映的路由,则app.render
会自动从服务器或客户端提供该页面,具体取决于:
router.get("/something",(req,res)=> {
app.render(req,res,'something',query)
})
我理解这一点是否正确?您使用
express
进行自定义SSR(服务器端渲染)。-当您刷新页面或在URL栏中键入URL并按enter键时,请使用简单的方法。Express和Next.js
router一起为页面提供服务,但这取决于所要求的渲染类型。如果是客户端渲染,那么next.js将接管,如果是SSR,那么Express将首先接管(next.js将要求Express接管)
在上面的示例中,如果有客户端渲染,用户将执行类似于/post/a-cool-post
的操作,但服务器将接收到/post?id=a-cool-post
,它被屏蔽到/p/a-cool-post
。请注意,/p/…
不存在。它是一个掩码URL。将本例中的视为
<Link as={`/p/${post.id}`} href={`/post?title=${post.title}`}>
<a>{post.title}</a>
</Link>
{post.title}
长话短说,这意味着我们正在询问express(在本例中为服务器端渲染),如果路由类似于/p/a-cool-post
,请转到并给我们/post/a-cool-post
,这是客户端渲染。因此,客户端和服务器中的路由将是相同的
第一个问题:
/aLonelyRoute
仅在express中使用,没有代码来说明它在客户端中的等效性。因此,它将仅从服务器渲染
第二个问题:
是的,这是正确的。取决于用户要求什么,如果他们在url栏中键入url并按enter键
刷新页面,然后express,如果使用下一个路由器进行路由,则它将是客户端
<Link as={`/p/${post.id}`} href={`/post?title=${post.title}`}>
<a>{post.title}</a>
</Link>