Использование React-Router для навигации между компонентами на одной странице

Я работаю над todo list, где у нас одна главная страница со списком пунктов, а все манипуляции с ними (создание, редактирование, просмотр) происходят через модальные окна, и теперь мне нужно добавить некую "маршрутизацию" для эти модальные окна (например, пользователь вставляет определенный URL-адрес в адресную строку браузера, и приложение должно отображаться с открытым модальным окном)

Я рассматриваю возможность добавления хэша к URL-адресу, например. для создания это должно быть «#create-task», а затем обрабатывать изменение хэша в пользовательском useEffect следующим образом:

  useEffect(() => {
    if (location.hash === 'create-task') {
      openCreateTaskModal();
    } else if (location.hash === 'view-task') {
      openViewTaskModal(id); // "id" also should be parsed from URL
    }
  }, [location.hash])

Что вы думаете об этом решении, может быть, есть лучшие способы реализовать это?

Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
Что такое компоненты React? Введение в компоненты | Типы компонентов
Что такое компоненты React? Введение в компоненты | Типы компонентов
Компонент - это независимый, многократно используемый фрагмент кода, который делит пользовательский интерфейс на более мелкие части. Например, если мы...
Введение в одну из самых важных концепций в React - функциональное программирование.
Введение в одну из самых важных концепций в React - функциональное программирование.
React разработан с использованием концепции функционального программирования, поэтому понимание функционального программирования важно для изучения...
Руководство спасателя React по созданию масштабируемых приложений
Руководство спасателя React по созданию масштабируемых приложений
А, React. Это одна из самых популярных библиотек JavaScript. Ее любят за гибкость, простоту использования и, будем честны, за то, что она позволяет...
0
0
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я думаю, лучшая практика.

import { Route } from "react-router";

...

return (
  <div>
    <Route path = "/create">
      <CreateComponent />
    </Route>
    <Route path = "/view/:id">
      <ViewComponent />
    </Route>
   
  </div>
);

Другие вопросы по теме