17.04.2025, Статья с объяснением
В React Router 6.4 появилась возможность определять ленивые маршруты примерно так, как если бы мы использовать React.lazy()
. API ленивых маршрутов требовал от нас экспортировать два компонента loader
и Component
.
С новым Middleware API появится возможность исполнить что-то до момента, когда лоадер и Компонент начнут работу. С предшествующей реализацией ленивой загрузки это привело к проблеме – все лоадеры бы ждали исполнения middlewar’ов, описанных как для своих, так и для других роутов.
В React Router 7.5 представили новый подход к работе с ленивыми роутами - теперь необходимо декларативно писать лоадер и Компонент в роутере, что, по сути, не одна, а две ленивые загрузки. По задумке это позволит лениво загружать отдельные свойства роута, а не загружать их все сразу, а ещё можно это будет разделить на несколько файлов.
const route = {
lazy: {
loader: async () => {
return (await import('./projects/loader')).loader;
},
Component: async () => {
return (await import('./projects/component')).Component;
},
},
};
React Router и дальше продолжает выкатывать крутые фичи для Framework-режима, что заставляет в очередной раз задуматься о целесообразности только клиентского (SPA) Data-подхода.