Search
Write a publication
Pull to refresh
4
0

User

Send message

Супер, спасибо) Давно хотел попробовать с ним пет проектик, на проде у нас везде реакт роутер.

Если ты про редиректы и 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 становятся как свои собственные 😁.

Круто, осталось только айфон приобрести 😂

Information

Rating
Does not participate
Registered
Activity

Specialization

Frontend Developer
Junior
React
Adaptive layout
TypeScript
Redux
GraphQL
NextJS