basic ssr impl

This commit is contained in:
2025-02-05 20:04:59 -05:00
parent 657abc8850
commit c24861866b
9 changed files with 1353 additions and 356 deletions
+54
View File
@@ -0,0 +1,54 @@
import { Routes, Route, Link } from 'react-router-dom'
import MainPage from './pages/index';
import PrivacyPage from './pages/privacy';
import MusicWidget from './pages/music';
import LinksPage from './pages/links';
import './assets/main.css'
export default function App() {
return (
<Routes>
<Route path="/" element={<MainPage />} />
<Route path="/privacy" element={<PrivacyPage />} />
<Route path="*" element={<div>404 Not Found</div>} />
</Routes>
)
}
// import ReactDOM from 'react-dom/client'
// import {
// createBrowserRouter,
// RouterProvider
// } from "react-router-dom"
// import './assets/main.css'
// // pages
// import MainPage from './pages/index';
// import PrivacyPage from './pages/privacy';
// import MusicWidget from './pages/music';
// import LinksPage from './pages/links';
// // const router = createBrowserRouter([
// // {
// // path: '/',
// // element: <MainPage />
// // },
// // {
// // path: '/privacy',
// // element: <PrivacyPage />
// // },
// // {
// // path: '/music',
// // element: <MusicWidget />
// // },
// // {
// // path: '/links',
// // element: <LinksPage />
// // }
// // ])
// // ReactDOM.createRoot(document.getElementById('root')!).render(
// // <RouterProvider router={router} />
// // )
+10
View File
@@ -0,0 +1,10 @@
import ReactDOM from "react-dom/client";
import { BrowserRouter } from "react-router-dom";
import App from './App'
ReactDOM.hydrateRoot(
document.getElementById("app") as HTMLElement,
<BrowserRouter>
<App />
</BrowserRouter>
)
+11
View File
@@ -0,0 +1,11 @@
import { StaticRouter } from "react-router-dom/server"
import { renderToString } from "react-dom/server"
import App from "./App"
export function render(url: string): string {
return renderToString(
<StaticRouter location={url}>
<App />
</StaticRouter>
)
}
-35
View File
@@ -1,35 +0,0 @@
import ReactDOM from 'react-dom/client'
import {
createBrowserRouter,
RouterProvider
} from "react-router-dom"
import './assets/main.css'
// pages
import MainPage from './pages/index';
import PrivacyPage from './pages/privacy';
import MusicWidget from './pages/music';
import LinksPage from './pages/links';
const router = createBrowserRouter([
{
path: '/',
element: <MainPage />
},
{
path: '/privacy',
element: <PrivacyPage />
},
{
path: '/music',
element: <MusicWidget />
},
{
path: '/links',
element: <LinksPage />
}
])
ReactDOM.createRoot(document.getElementById('root')!).render(
<RouterProvider router={router} />
)