Средство запуска на основе React-Router, написанное с использованием статических маршрутов.

const RouterConfig = [
    {
        path: '/',
        component: Home,
    },
    {
        path: '/about',
        component: About,
    },
];

const app = new Launcher({
    routes: RouterConfig,
});

app.start();
Войти в полноэкранный режим

Выйти из полноэкранного режима

Поддержка набора механизмов плагина

const plugin = {
    name: 'auth',
    outer: (children, opt) => {
        return <AuthProvider opt={opt}>{children}</AuthProvider>;
    },
    inner: (children, route, opt) => {
        return (
            <AuthRouteComponent route={route} opt={opt}>
                {children}
            </AuthRouteComponent>
        );
    },
};

const Home = () => <div>home</div>;
const About = () => <div>about</div>;

const app = new Launcher({
    routes: [
        {
            path: '/',
            component: Home,
        },
        {
            path: '/about',
            component: Home,
            // /about authentication is required
            hasAuth: true,
        },
    ],
});
app.use(plugin, opt);
Войти в полноэкранный режим

Выйти из полноэкранного режима

внешний будет завернут во внешний слой Router компонент, как родитель Routerчто можно интерпретировать как глобально уникальное, внутреннее будет обернуто снаружи каждого Route компонента, распространенным сценарием является аутентификация маршрута, как в приведенном выше коде.

Почему я пишу это?

В реальном проекте компании все являются родными React-Router, основанными на гибкости динамической маршрутизации, 1. логика организации маршрута проекта не прослеживается, новичок хочет найти страницу, которую вы должны найти на самом внешнем уровне слоя, 2. форма инкапсуляции не является единообразной, для некоторой управляющей логики (аутентификация), общей логики (заголовок страницы) и других потребностей каждое приложение инкапсулирует большое количество BasicRoute, TitleRoute и некоторый перехват операции

Лично я чувствую, что, пока я сейчас использую React-Router динамическая маршрутизация,Но мы не используем реальных возможностей динамической маршрутизации, которая по примеру на официальном сайте представляет собой маршрут, сгенерированный во время рендеринга, а его особенностью является возможность изменения маршрута приложения во время рендеринга, т.е. адаптивная маршрутизация, так что в результате ни гибкость динамической маршрутизации не используется, ни простота статической маршрутизации не теряется, и все преимущества маршрутизации в приложении видны с первого взгляда.

Адрес проекта:

Личная предвзятость, поправьте меня, если я не прав.