javascript - 为 react-router 组件使用多种布局

标签 javascript react-router

如果我有以下情况:

<Route path="/" component={Containers.App}>

  { /* Routes that use layout 1 */ }
  <IndexRoute component={Containers.Home}/>
  <Route path="about" component={Containers.About}/>
  <Route path="faq" component={Containers.Faq}/>
  <Route path="etc" component={Containers.Etc}/>

  { /* Routes that use layout 2 */ }
  <Route path="products" component={Containers.Products}/>
  <Route path="gallery" component={Containers.Gallery}/>
</Route>

我怎样才能使两组路线各自使用不同的布局。

如果我只有一个布局,那么我会把它放在 App 中,但是在这种情况下,我在哪里定义布局呢?

更复杂的是,一些布局组件(例如顶部导航)在两种布局类型之间共享。

最佳答案

您可以使用没有路径的路由来定义 url 未定义的容器:

<Route path="/" component={Containers.App}>

  { /* Routes that use layout 1 */ }
  <Route component={Containers.Layout1}>
    <IndexRoute component={Containers.Home}/>
    <Route path="about" component={Containers.About}/>
    <Route path="faq" component={Containers.Faq}/>
    <Route path="etc" component={Containers.Etc}/>
  </Route>

  <Route component={Containers.Layout2}>
    { /* Routes that use layout 2 */ }
    <Route path="products" component={Containers.Products}/>
    <Route path="gallery" component={Containers.Gallery}/>
  </Route>
</Route>
然后布局组件可以导入其他组件,例如顶部导航

关于javascript - 为 react-router 组件使用多种布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33996484/

相关文章:

javascript - 如何使用react-router处理生产构建中的刷新

javascript - 当尝试使用 React 路由器链接到不同页面时,为什么此脚本会导致此错误?

javascript - Backbone 嵌套 View

javascript - 绑定(bind)和指令之间的区别

javascript - D3 : Hyperlinks in tree diagram

javascript - 使用 PHP 和 JavaScript 打开 NonBootstrap 模式来更新/编辑表中的行

reactjs - 如何模拟 react 路由器上下文

javascript - React-router 如何重定向到 Express GET

reactjs - React js 路由器在部署时无法通过 url 正确路由到页面

javascript - 如何在html5中使用css3在灯箱中显示编辑输入字段