Если ты про редиректы и Layout - то в принципе здесь все это используется, только видимо тебя смутил подход через children - и кстати react-router уже 7-й версии (и по-моему 6-е последние тоже) поддерживает такой стиль написания тоже: <BrowserRouter><Route loader={()=>true}></Route></BrowserRouter> Поэтому на вкус и цвет как говориться)
"Вот такие вот штуки меня, в общем-то, напрягают: " Мне кажется такая же проблема остается и при старом стиле написания, Здесь в демке также используется Layout и Outlet,ничего в этом плане нового. И еще оговорюсь, когда мы обновляли router (изначально это была не 7-я версия) - и только в подходе с children можно было примененять loader, action -
И еще интересно с Navigate - и path в роутах, как вы у себя боретесь со сложными путями, ведь в больших структурах страниц все равно неизбежно их появление.
"Просто для примера, захотите вы сейчас добавить возможность работы вашего приложения не от корня, а от какого-нибудь публичного урла " - никто не мешает сделать так в самом простом варианте: export const ROUTES = { mainPage: 'EXTERNAL_URL', stepsRootPage: 'EXTERNAL_URL/steps', };
и так далее, если я тебя правильно понял.) А по неймингу и вот таким Navigate - я просто старался сделать роут более разложенным для статьи - понятно, что в проекте так не сдеано)
Спасибо, можно смело что-то такое сделать - или ютилку написать для таких вещей, и я думаю наше приложение если было бы побольше, то для удобства и читаемости так бы и сделали, пока обходимся константами)
Правды ради отмечу, что изначально на проекте так и было сделано, как ты (извини за фамильярность, если что) правильно заметил, были сделаны каскадные маршруты, но вот проверка плагина реализоввалась через кастомный хук и стейт менеджер (суммарно все занимало строчек 700 😒). Поэтому немного покопавшись в возможностях react-router - попробовали переписать - и по части кода стало гораздо чище (раза в 3 меньше объема), да и доп. фукционал в виде loader, action - которые доступны только в таком виде через createBrowserRouter прекрасно подошел под наши потребности.
Что касается формата path и указания element вместо компонент, то тут ничего ведь не поменялось, просто немного непривычная форма записи) - а когда поработаешь с ней 0 то children становятся как свои собственные 😁.
Супер, спасибо) Давно хотел попробовать с ним пет проектик, на проде у нас везде реакт роутер.
Если ты про редиректы и Layout - то в принципе здесь все это используется, только видимо тебя смутил подход через children - и кстати react-router уже 7-й версии (и по-моему 6-е последние тоже) поддерживает такой стиль написания тоже:
<BrowserRouter><Route loader={()=>true}></Route></BrowserRouter>
Поэтому на вкус и цвет как говориться)
"Вот такие вот штуки меня, в общем-то, напрягают: "
Мне кажется такая же проблема остается и при старом стиле написания, Здесь в демке также используется Layout и Outlet,ничего в этом плане нового.
И еще оговорюсь, когда мы обновляли router (изначально это была не 7-я версия) - и только в подходе с children можно было примененять loader, action -
И еще интересно с Navigate - и path в роутах, как вы у себя боретесь со сложными путями, ведь в больших структурах страниц все равно неизбежно их появление.
"Просто для примера, захотите вы сейчас добавить возможность работы вашего приложения не от корня, а от какого-нибудь публичного урла " - никто не мешает сделать так в самом простом варианте:
export const ROUTES = {
mainPage: 'EXTERNAL_URL', stepsRootPage: 'EXTERNAL_URL/steps', };
и так далее, если я тебя правильно понял.)
А по неймингу и вот таким Navigate - я просто старался сделать роут более разложенным для статьи - понятно, что в проекте так не сдеано)
Спасибо, можно смело что-то такое сделать - или ютилку написать для таких вещей, и я думаю наше приложение если было бы побольше, то для удобства и читаемости так бы и сделали, пока обходимся константами)
Правды ради отмечу, что изначально на проекте так и было сделано, как ты (извини за фамильярность, если что) правильно заметил, были сделаны каскадные маршруты, но вот проверка плагина реализоввалась через кастомный хук и стейт менеджер (суммарно все занимало строчек 700 😒).
Поэтому немного покопавшись в возможностях react-router - попробовали переписать - и по части кода стало гораздо чище (раза в 3 меньше объема), да и доп. фукционал в виде loader, action - которые доступны только в таком виде через createBrowserRouter прекрасно подошел под наши потребности.
Что касается формата path и указания element вместо компонент, то тут ничего ведь не поменялось, просто немного непривычная форма записи) - а когда поработаешь с ней 0 то children становятся как свои собственные 😁.
Круто, осталось только айфон приобрести 😂