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:
2026-09-09 01:21:58 +08:00
parent 27132e89c2
commit e71c77b5ca
20 changed files with 407 additions and 287 deletions

View File

@@ -1,5 +1,7 @@
/** 首页 SSR hydrate 首帧同构标志(仅 / 与板块首页) */
import { getScope } from '../ssr/scope';
declare global {
interface Window {
__J13_HYDRATING_HOME__?: boolean;
@@ -30,8 +32,10 @@ export function endHomeHydrate() {
}
}
/** 首帧是否必须与 Go SSR DOM 同构 */
/** 首帧是否必须与 SSR DOM 同构(SSR 渲染期读请求作用域,客户端读模块/窗口标志) */
export function isHomeHydrating(): boolean {
const scope = getScope();
if (scope) return scope.hydrating === true;
if (hydrating) return true;
try {
return !!window.__J13_HYDRATING_HOME__;