当前位置: 首页 > 知识库问答 >
问题:

在React-Rout-Dom中声明嵌套路由的方式

尚鸿才
2023-03-14

我正在使用reactJs并尝试创建一些嵌套路由。下面您可以看到“我的文件”的路由部分:

main.js:

ReactDOM.render(
    <Router>
        <App />
    </Router>,
    document.getElementById('page')
);

App.js:

class App extends Component {
    render() {
        return (
            <div>
                <Header />
                <Switch>
                    <Route exact path="/" component={Home} />
                    <Route path="/login" component={Login} />
                    <Route path="/signup" component={SignUp} />
                    <Route path="/contact" component={Contact} />
                    <ProtectedRoute path="/user/profile" component={Profile} />
                    <Route component={NotFound} />
                </Switch>
                <Footer />
            </div>
        );
    }
}

不要问我为什么,但我想创建以下url:

  • /注册:注册表格

我在我的App.js文件中添加了这个,它的工作原理是:

<Route exact path="/signup" component={SignUp} />
<Route exact path="/signup/person" component={SignUpPerson} />
<Route path="/signup/person/:id" component={SignUpId} />

但是我想知道这是创建嵌套路由的好方法,还是像下面这样分开路由更好:https://stackoverflow.com/a/43846223/4023379

或者另一种方式?

谢啦

共有1个答案

岳俊晖
2023-03-14

如果页面具有诸如页眉、页脚等公共逻辑/组件,则使用嵌套路由。

若页面不共享相似的逻辑,则使用单独的路由。仅仅因为url以/singup开头并不一定意味着您必须嵌套组件

 类似资料:
  • 问题内容: 我在react-router-dom中需要多个嵌套路由 我正在使用v4的react-router-dom 我有我的 我需要像这样渲染的组件 Home组件包含一个Page1,Page2和Page3组件共有的Header组件,但在Login和About中不存在。 我的js代码看起来像这样 我希望Login组件仅在/ login上显示当我请求/ page1,/ page2,/ page3时,

  • 如果我将路由折叠起来,这样看起来就像: 工作很好。我嵌套的原因是因为我将在“dashboard”下有多个子项,并且希望它们都在URL中以为前缀。

  • 我有类似这样的App.js文件 而看起来是这样的 我需要使,和工作 我尝试了上述方法,但输出是空白的,当我去任何这些路线。只有Navbar被渲染。

  • 问题内容: 我正在React-Router中设置一些嵌套路由(我正在使用v0.11.6),但是每当我尝试访问其中一个嵌套路由时,都会触发父路由。 我的路线如下所示: 如果我将路线折叠起来,它看起来像: 它工作正常。之所以要嵌套,是因为我将在“仪表盘”下有多个子代,并希望它们在URL中都带有前缀。 问题答案: 配置与路由无关(尽管有名称),而是与路径驱动的布局有关。 因此,使用此配置: 就是说要嵌入

  • 关于未解决的问题(作为最终结论) react路由器dom v4中的多个嵌套路由 如何在React路由器v4中嵌套路由 我也有同样的问题。 https://reacttraining.com/react-router/web/guides/quick-start促进react-router-dom 此外,人们发现最好在一个文件中列出路由,而不是在组件内部。 有人提到:https://github.c

  • 问题内容: 我已经在应用程序中将React Router升级到了版本4。但是现在我得到了错误 此路由有什么问题? 问题答案: IndexRoute和browserHistory在最新版本中不可用,并且Routes不接受带有v4的子级Routes,您可以在组件本身中指定Routes 然后在主要部分 同样在汽车组件中 您将拥有