From 7b5a57b774dc42b1fd69cc354d3fb5928b5c06db Mon Sep 17 00:00:00 2001 From: gary-Shen Date: Fri, 10 Nov 2023 20:20:36 +0800 Subject: [PATCH] chore: browser router --- src/App.tsx | 8 +++++++- src/components/router-container/index.tsx | 12 +++--------- vite.config.ts | 10 ++-------- 3 files changed, 12 insertions(+), 18 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index da96f5fa..393e39fb 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,7 +1,13 @@ +import { useEffect } from 'react'; + import RouterContainer from '@/components/router-container'; import routes from './routes'; export default function App() { - return ; + useEffect(() => { + document.dispatchEvent(new Event('custom-render-trigger')); + }, []); + + return ; } diff --git a/src/components/router-container/index.tsx b/src/components/router-container/index.tsx index 18a60f75..2e6850d2 100644 --- a/src/components/router-container/index.tsx +++ b/src/components/router-container/index.tsx @@ -4,7 +4,7 @@ */ import React, { useEffect, useMemo } from 'react'; import type { RouteObject, UIMatch } from 'react-router-dom'; -import { createBrowserRouter, createRoutesFromElements, Route, RouterProvider, useMatches } from 'react-router-dom'; +import { createHashRouter, createRoutesFromElements, Route, RouterProvider, useMatches } from 'react-router-dom'; export type RouteWithParent = RouteObject & { parent: RouteWithParent | null; @@ -66,14 +66,8 @@ export interface RouterProps { basename?: string; } -export default function RouterContainer({ routes, basename }: RouterProps) { - const router = useMemo( - () => - createBrowserRouter(createRoutesFromElements(mapRoutes(routes)), { - basename, - }), - [routes, basename], - ); +export default function RouterContainer({ routes }: RouterProps) { + const router = useMemo(() => createHashRouter(createRoutesFromElements(mapRoutes(routes))), [routes]); const fallback =
loading
; return ; diff --git a/vite.config.ts b/vite.config.ts index 3dd42468..50a44e15 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -9,7 +9,7 @@ import { ViteEjsPlugin } from 'vite-plugin-ejs'; // https://vitejs.dev/config/ export default defineConfig({ - base: '/labelU/', + base: '/', publicDir: resolve(__dirname, 'public'), optimizeDeps: { @@ -22,17 +22,11 @@ export default defineConfig({ svgr(), ViteEjsPlugin(), // prerender({ - // routes: ['/', '/guide/install/windows', '/guide/install/macos', '/schema/image/point'], + // routes: ['/', '/schema/image/point'], // renderer: '@prerenderer/renderer-puppeteer', // rendererOptions: { // renderAfterDocumentEvent: 'custom-render-trigger', // }, - // postProcess(renderedRoute) { - // // Replace all http with https urls and localhost to your site url - // renderedRoute.html = renderedRoute.html - // .replace(/http:/i, 'https:') - // .replace(/(https:\/\/)?(localhost|127\.0\.0\.1):\d*/i, process.env.CI_ENVIRONMENT_URL || ''); - // }, // }), ].filter(Boolean), resolve: {