feat: Vike 骨架(pages feed+spa / renderer 双端入口 / AppShell 拆分 / serverClient)
vite.config 接入 vike 插件并改产出 dist/client+dist/server;feed 白名单 route 匹配 /、/board/:id、/post/:id(.html);spa catch-all ssr:false;onRenderHtml renderToReadableStream 等 allReady 输出完整 HTML 并带主题/缩放脚本;onRenderClient 沿用样式表等待+冷启动预热+hydrate 回退;getHomeStoreState 作用域 + hydrating 变体入 RequestScope;删除 index.html 与 main.tsx
This commit is contained in:
8
frontend/pages/spa/+Page.tsx
Normal file
8
frontend/pages/spa/+Page.tsx
Normal file
@@ -0,0 +1,8 @@
|
||||
import App from '../../src/App';
|
||||
|
||||
export { Page };
|
||||
|
||||
/** SPA 壳页:客户端整树挂载 react-router(服务端不执行本组件) */
|
||||
function Page() {
|
||||
return <App />;
|
||||
}
|
||||
10
frontend/pages/spa/+route.ts
Normal file
10
frontend/pages/spa/+route.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
import type { PageContext } from 'vike/types';
|
||||
import { matchFeedSsrPath } from '../../src/ssr/feedPaths';
|
||||
|
||||
export { route };
|
||||
|
||||
/** catch-all:SSR feed 白名单之外的一切 URL */
|
||||
function route(pageContext: PageContext) {
|
||||
if (matchFeedSsrPath(pageContext.urlPathname)) return false;
|
||||
return { routeParams: {} };
|
||||
}
|
||||
4
frontend/pages/spa/+ssr.ts
Normal file
4
frontend/pages/spa/+ssr.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
export { ssr };
|
||||
|
||||
/** SPA 壳:服务端只出空壳 HTML,客户端整树挂载 react-router */
|
||||
const ssr = false;
|
||||
Reference in New Issue
Block a user