alex4answ
@alex4answ

Разный Layout для страниц?

Добрый вечер, есть 3 разных Layout для разных страниц:

1. С шапкой и Сайдбаром (контентные страницы)
2. С шапкой, без сайдбара (главная страница)
3. Без шапки и сайдбара (страница регистрации/аутенфикации, 404)
+ В разных страницах разное содержание сайдбара (где-то фильтр, где-то разные виджеты и тп)

Стоит react-router, сейчас App компонент выглядит примерно так:
const App = () => (
 // ...
  <Switch>
    <Route exec path="/" component={HomePage} />
    <Route path="/about" component={AboutPage} />
    <Route path="/signin" component={AuthPage} />
  </Switch>
// ...
)


В итоге уже в компоненте самой страницы я строю Layout, подключаю шапку, сайдбар, футер и тд, что мне кажется в корне не верным (ощущение что это делается не так, есть другой более правильный подход, аргументировать не могу)

Подскажите, как обычно делаются такие вещи?
  • Вопрос задан
  • 254 просмотра
Пригласить эксперта
Ответы на вопрос 2
IceRD
@IceRD
Выкинуть 3 вариант и нормально будет.
Это нормальная практика использования 1 тип для приветственной страницы ( регистрация / авторизация ) и рабочее пространство с каким-то выезжающим меню и другими наворотами.
Ответ написан
delphinpro
@delphinpro
frontend developer
Nested routes я полагаю.

<Route component={App} path="/">
  <Route component={Layout1} path="/">
    <Route component={View1} path="/view1"></Route>
    <Route component={View2} path="/view2"></Route>
  </Route>
  <Route component={Layout2} path="/">
    <Route component={View3} path="/view3"></Route>
    <Route component={View4} path="/view4"></Route>
  </Route>
</Route>


Я правда не помню, как это пишется в реакте. Мы на Vue таким образом решаем проблему лейаутов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы