Comments 18
По-моему, react-router — сама по себе веская причина отказаться от React в пользу Vue.
Без импортов, подключения в фреймворк и т.д.
const routes = [
{
path: "/sandwiches",
component: Sandwiches
},
{
path: "/tacos",
component: Tacos,
routes: [
{
path: "/tacos/bus",
component: Bus
},
{
path: "/tacos/cart",
component: Cart
}
]
}
];
// wrap <Route> and use this everywhere instead, then when
// sub routes are added to any route it'll work
const RouteWithSubRoutes = route => (
<Route
path={route.path}
render={props => (
// pass the sub-routes down to keep nesting
<route.component {...props} routes={route.routes} />
)}
/>
);
// ...
{routes.map((route, i) => <RouteWithSubRoutes key={i} {...route} />)}
const routes = [
{ path: '/foo', component: Foo },
{ path: '/bar', component: Bar }
]
<router-view/>
Ну и такая приятная мелочь, как именованные роуты и их поддержка в <router-link/>
, всего 2 экспортированных компонента вместо 11, ну и так далее.
В 4-й версии он немного непривычен для тех кто ожидает в роуте видеть действие.
Роутер версии 4 это аналог тэга <IF>, <SWITCH> в других фреймверках. Это позвояет строить очень гибкие решения. Т.к. роут задает не только поведение того компонента который записан в его определении ({ path: "/sandwiches", component: Sandwiches }). Но также вы можете «показывать» или «скрывать» в роутах часть тэгов в починенных компонентах. Если только не искать в роутах императивных действий — сразу начинаешь предпочитать реактовские роуты другим реализациям (я кстати не говорю тут что-то против vue.js — это так на всякий случай).
Дык во vue-router то же самое. Только как-то проще и внятнее, но притом из коробки плюшек побольше. Например, можно влиять не только на подчиненные компоненты и дочерние роуты, а иметь несколько аутлетов в дереве приложения. До именованных роутов в react-router за 4 версии не додумались, в результате урлы в <Link/>
надо либо писать руками (что чревато) или искать какую-то либу.
не искать в роутах императивных действий
А где вы встречали императивные роуты? Они везде более-менее декларативные, КМК.
В доке react-router показывается четыре роута вместо двух. Плюс больше переносов строк.
Складывается ощущение, что тут пытаются манипулировать фактами...
react-router4 и так довольно хорошая.
Прикол в том, что хабр — текстовый ресурс, а не коллекция ссылочек на ютуб. Есть на нём та же HTML Academy, которые сами делают туториалы и выкладывают их на ютуб. Вот только они при этом пишут туториал и на хабр, в конце прикрепляя видео с тем же контентом, но на другом ресурсе. Так же и Яндекс выкладывает тут видео-доклады со своих конференций, только сразу под видео есть расшифровка в виде текста, вместе со слайдами.
Да, много кто просто берёт и работает над чужим видео, но он делает из этого статью хоть какую-то. Тут же просто "ребята, смотрите какой я молодец".
Не, конечно перевод, подгонка по времени и всё остальное — дело реально трудное, я знаю. И я уважаю человека, который сделал эту работу. Но на хабр то выкладывать нужно статьи, а не рекламу своего дейтища. $mol рекламируется во все свои дыркифичи статьями! Все инструменты, сделанные хабровчанами, описываются: описывается проблема, описываются уже готовые решения и только в конце даётся ссылка на GitHub.
Так что ИМХО, это просто заметочка "во как я умею!" Никакой пользы именно для хабра не имеющая. Я мог бы это видео найти и просто в ютубе, зачем хабр напрягать и отнимать у людей внимание от других СТАТЕЙ, а не таких заметочек?
Никакой пользы именно для хабра не имеющая
Плюсы за статью и закладки — говорят о том, что кому-то все же польза была. Поэтому, я продолжу работать для этих людей, пока динамика будет положительной.
p.s. спасибо за обратную связь
Перевод крутой, но…
В таком формате видео усваивается хуже. Было бы классно сделать перевод в текстовом формате полностью. Чтобы можно было почитать и т.д. Думаю, ты понял, о чём я.
А касательно содержания, мне кажется, что делать в таком конфиг-файле вложенные роуты не очень удобно. Делаю роуты не в виде массива, а в виде объекта, где ключами являются имена роутов. Потом экспортирую и в итоге можно составлять роут по формату:
<Route {...routes.thisRouteName}/>
С динамическими параметрами не очень, но для меня лично такой вариант удобнее.
Переводы текстовые делаем, но обычно уже не выкладываем на хабр.
Как сделать конфигурационный файл роутов в React Router 4 (субтитры)