Задать вопрос
svisch
@svisch

Как в React правильно загржать часть страницы при неизменной другой части при смене url?

Здравствуйте. Есть url '/lk' и соответствующий ему компонент Lk. На этой странице я вывожу компонентом меню, которое должно располагаться на всех страницах "lk/*" (например /lk/1) и другие компоненты, соответствующие пунктам этого меню, которые надо подгружать динамически. Подскажите плиз как правильно это реализовать, разумеется используя react router.

На данный момент у меня сделано так, но я сомневаюсь в том, что это правильно:
Сделал компонент Lk, в котором рендерится компонент меню, а при создании самого компонента Lk с помощью useLocation смотрю url, беру его последнюю часть и в switch выбираю нужный мне компонент, который предполагается динамически загружать в зависимости от части url которая после /lk идет. Ну и сохраняю этот компонент в состояние и рендерю его как переменную рядом с компонентом меню.
В react-router Lk сопоставляется всем url /lk/*.

Буду благодарен рекомендациям.
  • Вопрос задан
  • 75 просмотров
Подписаться 1 Средний 3 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Frontend-разработка на React
    10 недель
    Далее
  • ProductStar
    Разработка на React
    6 недель
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
Решения вопроса 1
Kentavr16
@Kentavr16
long cold winter
если я правильно понял, то вам нужно ознакомиться с концепцией дочерних роутов. далее пример из оф.документации:

<Routes>
  <Route path="/" element={<Dashboard />}>
    <Route
      path="messages"
      element={<DashboardMessages />}
    />
    <Route path="tasks" element={<DashboardTasks />} />
  </Route>
  <Route path="about" element={<AboutPage />} />
</Routes>


Whenever the location changes, looks through all its child routes to find the best match and renders that branch of the UI.


в помощь следующим ищущим вопросы стоит закрывать, даже если сами нашли ответ. Happy hacking.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
от 250 000 до 300 000 ₽
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Екатеринбург
от 50 000 до 90 000 ₽