因此,我正在开发一个nodejs应用程序,我将在这个应用程序上安装我的新网站,我想让我的用户在客户端显示不同的东西,re-renderd取决于用户按下的内容。我的想法是,例如,首先用户会看到“请先选择一个工具”,然后用户将选择导航栏中的工具,然后页面将被重新渲染。renderd并在一个大屏幕内显示所选的工具,并更改URL,例如/admin/[ToolSelected]。
唯一的一件事是,我不知道如何实现这一点。我认为,客户端代码可以检测到什么是网址,并作为一个页面变量放置,然后该工具将显示一个IF语句取决于什么是页面变量。
我的理论是否有效,或者如何有效地实现这一点?
下面是我的主页代码:
// Including Navbar and css
import AdminLayout from '../comps/admin/adminLayout'
// the so called "tools" more will exist in the future
import Passform from '../comps/admin/tools/passform'
// Fetching the current url the user is on
var page = CURRENT_URL;
const jumbotron = {
background: 'white'
}
const Admin = (page) => (
<AdminLayout>
<style global jsx>
{
`body {
background: #eff0f3;
}`
}
</style>
<div className="jumbotron" style={jumbotron}>
{(page == "passform") ? (
<Passform/>
) : (
<h3>Something is wrong :/ . {page}</h3>
)}
</div>
</AdminLayout>
)
export default Admin
字符串
2条答案
按热度按时间z9smfwbn1#
您可以使用
withRouter
HOC Package 组件,这将注入router
对象,该对象具有当前pathname
。字符串
使用Hooks
如果你喜欢钩子,你可以使用
useRouter
钩子。型
router.pathname
将包含“config”URL,因此对于动态路由,它将包含[paramName]
部分。动态路由
您可以检查
router.query
是否存在动态部分。型
ljo96ir52#
使用AppDir路由器的NextJS 13
https://nextjs.org/docs/app/api-reference/functions/use-pathname
字符串