react结合react-router页面如何布局,不需要复杂代码,简单的说说布局就可以了

发布于 2022-09-05 23:22:41 字数 983 浏览 15 评论 0

比如Top.js Sidebar.js Main.js这些组件如何和react-router结合,大家有没有例子可以参考下。
我自己写了一个,但是感觉有问题,

<Router>
            <Switch>
                <Route exact path="/account/register" component={Register}/>
                <Route exact path="/account/login" component={Login}/>
                <Route exact path="/email/verify/:token" component={VerifyEmail}/>
                <Route path="/" render={()=>(
                    <Layout>
                        <Route exact path="/"
                               render={(props)=><Index {...props} column={this.state.mainColumn}/>}/>
                        <Route path="/explore" component={Explore}/>
                        <Route path="/user" component={User}/>
                        <Route path="/mysites" component={MySites}/>
                    </Layout>
                )}/>
            </Switch>
    </Router>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

黒涩兲箜 2022-09-12 23:22:41

react-router4.0相当于把路由当成一个组件了,你组件怎么布局路由就可以怎么布
贴一个我现在的布局

        <Router>
           <Layout>
        {isProduction ? null : <DevTools/>}
        <Sider id="sider">
          <div className="fgw-logo">
            <Row gutter={16}>
              <Col span={8}>
                <Icon type="user" style={{fontSize: 40}} className="fgw-h-img" alt=""/>
              </Col>
              <Col span={8} className="fgw-logo-font">LOGO</Col>
            </Row>
          </div>
          <div className="fgw-clear"/>
          <Menu id="menu" className="fgw-leftbar-color" mode={this.state.mode}
                selectedKeys={[selectedKeys[1]]} defaultSelectedKeys={['roomMain']}>

            <Menu.Item key="/roomMain" className="fgw-menu">
              <Link to="/roomMain">
                <span className="verticalLevelCentered" style={{color: "#eeeeee"}}>机房管理</span>
              </Link>
            </Menu.Item>
            <Menu.Item key="/cabinetList" className="fgw-menu">
              <Link to="/cabinetList">
                <span className="verticalLevelCentered" style={{color: "#eeeeee"}}>机柜管理</span>
              </Link>
            </Menu.Item>
            <Menu.Item key="/hostMain" className="fgw-menu">
              <Link to="/hostMain">
                <span className="verticalLevelCentered" style={{color: "#eeeeee"}}>主机管理</span>
              </Link>
            </Menu.Item>
            <Menu.Item key="/monitor/host" className="fgw-menu">
              <Link to="/monitor/host">
                <span className="verticalLevelCentered" style={{color: "#eeeeee"}}>监控管理</span>
              </Link>
            </Menu.Item>
            <SubMenu key="log" title={<span className="verticalLevelCentered" style={{color: "#eeeeee"}}>日志管理</span>}>
              <Menu.Item key="/log/operationRecord">
                <Link to="/log/operationRecord">
                  <span className="verticalLevelCentered" style={{color: "rgba(0, 0, 0, 0.65)",}}>操作记录</span>
                </Link>
              </Menu.Item>
              <Menu.Item key="/log/alert">
                <Link to="/log/alert">
                  <span className="verticalLevelCentered" style={{color: "rgba(0, 0, 0, 0.65)"}}>告警记录</span>
                </Link>
              </Menu.Item>
              <Menu.Item key="/log/search">
                <Link to="/log/search">
                  <span className="verticalLevelCentered" style={{color: "rgba(0, 0, 0, 0.65)"}}>日志查询</span>
                </Link>
              </Menu.Item>
              <Menu.Item key="/log/kibanaView">
                <Link to="/log/kibanaView">
                  <span className="verticalLevelCentered" style={{color: "rgba(0, 0, 0, 0.65)"}}>日志图表</span>
                </Link>
              </Menu.Item>
            </SubMenu>
            <Menu.Item key="/test" className="fgw-menu">
              <Link to="/test">
                <span className="verticalLevelCentered" style={{color: "#eeeeee"}}>测试</span>
              </Link>
            </Menu.Item>
          </Menu>
        </Sider>
        <Layout>
          <AppHeader/>
          <Content id="content">
            <Route exact path="/" render={() => (<Redirect to="/roomMain"/>)}/>
            {routes.map((route, index) => {
              if (route.protected === 'yes') {
                return (
                  <PrivateRoute key={index}
                                path={route.path}
                                component={route.component}
                                exact/>
                )
              } else {
                return (
                  <Route key={index}
                         path={route.path}
                         component={route.component}
                         exact/>
                )
              }
            })}
          </Content>
          {/*<Footer style={{textAlign: 'center'}}>*/}
          {/*Ant Design ©2016 Created by Ant UED*/}
          {/*</Footer>*/}
        </Layout>
      </Layout>
        </Router>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文