@lytjs/renderer 5.0.0 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +371 -204
- package/dist/dom.cjs +12 -1
- package/dist/dom.cjs.map +1 -0
- package/dist/dom.d.cts +1 -0
- package/dist/dom.d.ts +1 -0
- package/dist/dom.mjs +3 -1
- package/dist/dom.mjs.map +1 -0
- package/dist/index.cjs +3312 -1
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1004 -0
- package/dist/index.d.ts +1004 -0
- package/dist/index.mjs +3190 -1
- package/dist/index.mjs.map +1 -0
- package/dist/ssr.cjs +310 -1
- package/dist/ssr.cjs.map +1 -0
- package/dist/ssr.d.cts +21 -0
- package/dist/ssr.d.ts +21 -0
- package/dist/ssr.mjs +308 -1
- package/dist/ssr.mjs.map +1 -0
- package/package.json +35 -58
- package/dist/miniapp.cjs +0 -21
- package/dist/miniapp.mjs +0 -21
- package/dist/native.cjs +0 -1
- package/dist/native.mjs +0 -1
- package/dist/types/create-renderer.d.ts +0 -20
- package/dist/types/create-renderer.d.ts.map +0 -1
- package/dist/types/dom/dom-ops.d.ts +0 -74
- package/dist/types/dom/dom-ops.d.ts.map +0 -1
- package/dist/types/dom/dom-renderer.d.ts +0 -243
- package/dist/types/dom/dom-renderer.d.ts.map +0 -1
- package/dist/types/dom/index.d.ts +0 -17
- package/dist/types/dom/index.d.ts.map +0 -1
- package/dist/types/dom/patch-events.d.ts +0 -123
- package/dist/types/dom/patch-events.d.ts.map +0 -1
- package/dist/types/dom/patch-props.d.ts +0 -118
- package/dist/types/dom/patch-props.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -36
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/miniapp/index.d.ts +0 -21
- package/dist/types/miniapp/index.d.ts.map +0 -1
- package/dist/types/miniapp/miniapp-compiler.d.ts +0 -269
- package/dist/types/miniapp/miniapp-compiler.d.ts.map +0 -1
- package/dist/types/miniapp/miniapp-event-bridge.d.ts +0 -255
- package/dist/types/miniapp/miniapp-event-bridge.d.ts.map +0 -1
- package/dist/types/miniapp/miniapp-lifecycle.d.ts +0 -224
- package/dist/types/miniapp/miniapp-lifecycle.d.ts.map +0 -1
- package/dist/types/miniapp/miniapp-renderer.d.ts +0 -269
- package/dist/types/miniapp/miniapp-renderer.d.ts.map +0 -1
- package/dist/types/miniapp/miniapp-utils.d.ts +0 -168
- package/dist/types/miniapp/miniapp-utils.d.ts.map +0 -1
- package/dist/types/miniapp/shared-constants.d.ts +0 -28
- package/dist/types/miniapp/shared-constants.d.ts.map +0 -1
- package/dist/types/mount.d.ts +0 -32
- package/dist/types/mount.d.ts.map +0 -1
- package/dist/types/native/index.d.ts +0 -13
- package/dist/types/native/index.d.ts.map +0 -1
- package/dist/types/native/native-renderer.d.ts +0 -249
- package/dist/types/native/native-renderer.d.ts.map +0 -1
- package/dist/types/patch.d.ts +0 -23
- package/dist/types/patch.d.ts.map +0 -1
- package/dist/types/props.d.ts +0 -19
- package/dist/types/props.d.ts.map +0 -1
- package/dist/types/renderer-interfaces.d.ts +0 -157
- package/dist/types/renderer-interfaces.d.ts.map +0 -1
- package/dist/types/shared/abstract-renderer.d.ts +0 -74
- package/dist/types/shared/abstract-renderer.d.ts.map +0 -1
- package/dist/types/ssr/hydration.d.ts +0 -267
- package/dist/types/ssr/hydration.d.ts.map +0 -1
- package/dist/types/ssr/index.d.ts +0 -15
- package/dist/types/ssr/index.d.ts.map +0 -1
- package/dist/types/ssr/ssr-renderer.d.ts +0 -277
- package/dist/types/ssr/ssr-renderer.d.ts.map +0 -1
- package/dist/types/unmount.d.ts +0 -16
- package/dist/types/unmount.d.ts.map +0 -1
- package/dist/types/vapor/index.d.ts +0 -18
- package/dist/types/vapor/index.d.ts.map +0 -1
- package/dist/types/vapor/vapor-compiler.d.ts +0 -76
- package/dist/types/vapor/vapor-compiler.d.ts.map +0 -1
- package/dist/types/vapor/vapor-component.d.ts +0 -55
- package/dist/types/vapor/vapor-component.d.ts.map +0 -1
- package/dist/types/vapor/vapor-reactive.d.ts +0 -133
- package/dist/types/vapor/vapor-reactive.d.ts.map +0 -1
- package/dist/types/vapor/vapor-renderer.d.ts +0 -135
- package/dist/types/vapor/vapor-renderer.d.ts.map +0 -1
- package/dist/types/vnode.d.ts +0 -203
- package/dist/types/vnode.d.ts.map +0 -1
- package/dist/vapor.cjs +0 -1
- package/dist/vapor.mjs +0 -1
|
@@ -1,267 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lyt.js 客户端注水(Hydration)
|
|
3
|
-
*
|
|
4
|
-
* 在服务端渲染(SSR)后,客户端需要将静态 HTML "激活"为可交互的应用。
|
|
5
|
-
* 注水过程会对比服务端渲染的 DOM 与客户端 VNode,复用已有 DOM 节点,
|
|
6
|
-
* 仅绑定事件和响应式数据,避免重新创建 DOM。
|
|
7
|
-
*
|
|
8
|
-
* 核心机制:
|
|
9
|
-
* - hydrate(app, container) — 注水入口函数
|
|
10
|
-
* - 对比 DOM 节点与 VNode 的类型和属性
|
|
11
|
-
* - 复用匹配的 DOM 节点,绑定事件和响应式
|
|
12
|
-
* - isHydrating 标记区分注水模式和首次渲染
|
|
13
|
-
* - onHydrated 回调通知注水完成
|
|
14
|
-
*
|
|
15
|
-
* 注水流程:
|
|
16
|
-
* 1. 遍历服务端渲染的 DOM 树
|
|
17
|
-
* 2. 对比每个 DOM 节点与对应的客户端 VNode
|
|
18
|
-
* 3. 如果匹配(标签名相同),复用 DOM 节点,绑定事件
|
|
19
|
-
* 4. 如果不匹配,标记为 hydration mismatch(开发环境警告)
|
|
20
|
-
* 5. 递归处理子节点
|
|
21
|
-
* 6. 注水完成后触发 onHydrated 回调
|
|
22
|
-
*
|
|
23
|
-
* 支持的节点类型:
|
|
24
|
-
* - Element:对比标签名,绑定事件,递归子节点
|
|
25
|
-
* - Text:对比文本内容
|
|
26
|
-
* - Comment:对比注释内容
|
|
27
|
-
* - Fragment:直接注水子节点
|
|
28
|
-
* - Component:递归注水组件 subTree
|
|
29
|
-
*
|
|
30
|
-
* Partial Hydration(Islands Architecture):
|
|
31
|
-
* - hydrateIsland(selector, component) — 选择性注水特定 island
|
|
32
|
-
* - createHydrationIsland(component, props) — 服务端生成 island HTML
|
|
33
|
-
* - 支持 lazy hydration(IntersectionObserver / requestIdleCallback / interaction)
|
|
34
|
-
* - 支持 hydration mismatch 检测(开发模式)
|
|
35
|
-
*/
|
|
36
|
-
import type { VNode } from '@lytjs/vdom';
|
|
37
|
-
/** 应用实例接口(简化版) */
|
|
38
|
-
export interface App {
|
|
39
|
-
/** 挂载函数 */
|
|
40
|
-
mount: (container: Element) => void;
|
|
41
|
-
/** 卸载函数 */
|
|
42
|
-
unmount?: () => void;
|
|
43
|
-
/** 根组件 */
|
|
44
|
-
_component?: any;
|
|
45
|
-
/** 根 VNode */
|
|
46
|
-
_vnode?: VNode;
|
|
47
|
-
}
|
|
48
|
-
/** 注水选项 */
|
|
49
|
-
export interface HydrateOptions {
|
|
50
|
-
/** 注水完成后的回调 */
|
|
51
|
-
onHydrated?: () => void;
|
|
52
|
-
/** 是否在 mismatch 时抛出错误(默认 false,只警告) */
|
|
53
|
-
strict?: boolean;
|
|
54
|
-
}
|
|
55
|
-
/** Partial Hydration 选项(Islands Architecture) */
|
|
56
|
-
export interface HydrationOptions {
|
|
57
|
-
/** 仅注水特定 island 元素 */
|
|
58
|
-
hydrateIslands?: boolean;
|
|
59
|
-
/** 懒注水:元素进入视口时才注水 */
|
|
60
|
-
lazy?: boolean;
|
|
61
|
-
/** 注水超时时间(毫秒) */
|
|
62
|
-
timeout?: number;
|
|
63
|
-
/** 注水完成回调 */
|
|
64
|
-
onHydrated?: () => void;
|
|
65
|
-
/** 是否在 mismatch 时抛出错误(默认 false,只警告) */
|
|
66
|
-
strict?: boolean;
|
|
67
|
-
/** 开发模式(启用 mismatch 检测和警告) */
|
|
68
|
-
dev?: boolean;
|
|
69
|
-
}
|
|
70
|
-
/** 注水结果 */
|
|
71
|
-
export interface HydrateResult {
|
|
72
|
-
/** 是否成功 */
|
|
73
|
-
success: boolean;
|
|
74
|
-
/** mismatch 数量 */
|
|
75
|
-
mismatches: number;
|
|
76
|
-
/** 注水的节点数量 */
|
|
77
|
-
hydratedNodes: number;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* 获取当前是否处于注水模式
|
|
81
|
-
*
|
|
82
|
-
* @returns 是否正在注水
|
|
83
|
-
*/
|
|
84
|
-
export declare function isHydrating(): boolean;
|
|
85
|
-
/**
|
|
86
|
-
* 设置注水模式标记
|
|
87
|
-
*
|
|
88
|
-
* @param value 是否处于注水模式
|
|
89
|
-
*/
|
|
90
|
-
export declare function setHydrating(value: boolean): void;
|
|
91
|
-
/**
|
|
92
|
-
* 获取注水统计信息
|
|
93
|
-
*
|
|
94
|
-
* @returns 注水结果统计
|
|
95
|
-
*/
|
|
96
|
-
export declare function getHydrateStats(): HydrateResult;
|
|
97
|
-
/**
|
|
98
|
-
* 重置注水统计信息
|
|
99
|
-
*/
|
|
100
|
-
export declare function resetHydrateStats(): void;
|
|
101
|
-
/**
|
|
102
|
-
* 注册注水完成回调
|
|
103
|
-
*
|
|
104
|
-
* @param cb 回调函数
|
|
105
|
-
*/
|
|
106
|
-
export declare function onHydrated(cb: () => void): void;
|
|
107
|
-
/**
|
|
108
|
-
* 客户端注水函数
|
|
109
|
-
*
|
|
110
|
-
* 将服务端渲染的静态 HTML 激活为可交互的应用。
|
|
111
|
-
* 对比 DOM 树与 VNode 树,复用已有 DOM 节点,仅绑定事件和响应式。
|
|
112
|
-
*
|
|
113
|
-
* @param app 应用实例
|
|
114
|
-
* @param container 挂载容器(与服务端渲染的根元素对应)
|
|
115
|
-
* @param options 注水选项
|
|
116
|
-
* @returns 注水结果统计
|
|
117
|
-
*
|
|
118
|
-
* @example
|
|
119
|
-
* // 服务端渲染的 HTML
|
|
120
|
-
* // <div id="app"><h1>Hello</h1></div>
|
|
121
|
-
*
|
|
122
|
-
* // 客户端注水
|
|
123
|
-
* import { createApp } from '@lytjs/core'
|
|
124
|
-
* import { hydrate } from '@lytjs/renderer/ssr'
|
|
125
|
-
* import App from './App'
|
|
126
|
-
*
|
|
127
|
-
* const app = createApp(App)
|
|
128
|
-
* hydrate(app, document.getElementById('app')!, {
|
|
129
|
-
* onHydrated: () => console.log('注水完成')
|
|
130
|
-
* })
|
|
131
|
-
*/
|
|
132
|
-
export declare function hydrate(app: App, container: Element, options?: HydrateOptions): HydrateResult;
|
|
133
|
-
/**
|
|
134
|
-
* 组件选项接口(用于 Island 注水)
|
|
135
|
-
* 与 SSR 渲染器的 ComponentOptions 对齐
|
|
136
|
-
*/
|
|
137
|
-
export interface ComponentOptions {
|
|
138
|
-
/** 组件名称 */
|
|
139
|
-
name?: string;
|
|
140
|
-
/** setup 函数 */
|
|
141
|
-
setup?: (...args: any[]) => any;
|
|
142
|
-
/** render 函数 */
|
|
143
|
-
render?: (...args: any[]) => VNode;
|
|
144
|
-
/** props 定义 */
|
|
145
|
-
props?: Record<string, any>;
|
|
146
|
-
/** slots */
|
|
147
|
-
slots?: Record<string, any>;
|
|
148
|
-
/** 其他组件选项 */
|
|
149
|
-
[key: string]: any;
|
|
150
|
-
}
|
|
151
|
-
/** Island 注水状态 */
|
|
152
|
-
interface IslandState {
|
|
153
|
-
/** island 标识符 */
|
|
154
|
-
id: string;
|
|
155
|
-
/** 是否已注水 */
|
|
156
|
-
hydrated: boolean;
|
|
157
|
-
/** 组件实例 */
|
|
158
|
-
instance: any;
|
|
159
|
-
/** 事件监听器(用于清理) */
|
|
160
|
-
eventListeners: Array<{
|
|
161
|
-
el: HTMLElement;
|
|
162
|
-
event: string;
|
|
163
|
-
handler: any;
|
|
164
|
-
}>;
|
|
165
|
-
/** 超时定时器 */
|
|
166
|
-
timeoutId: ReturnType<typeof setTimeout> | null;
|
|
167
|
-
/** IntersectionObserver 实例 */
|
|
168
|
-
observer: IntersectionObserver | null;
|
|
169
|
-
/** 交互事件监听器 */
|
|
170
|
-
interactionHandler: (() => void) | null;
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* 注水特定 island(Partial Hydration)
|
|
174
|
-
*
|
|
175
|
-
* 通过 CSS 选择器找到服务端渲染的 island 元素,
|
|
176
|
-
* 解析其关联的 props JSON,创建组件实例并注水。
|
|
177
|
-
*
|
|
178
|
-
* @param selector CSS 选择器(匹配带 data-hydrate 属性的元素)
|
|
179
|
-
* @param component 组件定义
|
|
180
|
-
* @param options 注水选项
|
|
181
|
-
* @returns 注水结果
|
|
182
|
-
*
|
|
183
|
-
* @example
|
|
184
|
-
* // HTML: <div data-hydrate="counter" data-props="...">...</div>
|
|
185
|
-
* // <script type="application/json" data-hydrate-props="counter">{"count":0}</script>
|
|
186
|
-
* hydrateIsland('[data-hydrate="counter"]', CounterComponent)
|
|
187
|
-
*/
|
|
188
|
-
export declare function hydrateIsland(selector: string, component: ComponentOptions, options?: HydrationOptions): HydrateResult;
|
|
189
|
-
/**
|
|
190
|
-
* 注水所有 island
|
|
191
|
-
*
|
|
192
|
-
* 查找页面上所有带 data-hydrate 属性的元素,逐一注水。
|
|
193
|
-
* 需要提前通过 registerIslandComponent 注册组件映射。
|
|
194
|
-
*
|
|
195
|
-
* @param options 注水选项
|
|
196
|
-
* @returns 注水结果汇总
|
|
197
|
-
*/
|
|
198
|
-
export declare function hydrateAllIslands(options?: HydrationOptions): HydrateResult;
|
|
199
|
-
/**
|
|
200
|
-
* 注册 island 组件映射
|
|
201
|
-
*
|
|
202
|
-
* @param id island 标识符
|
|
203
|
-
* @param component 组件定义
|
|
204
|
-
*/
|
|
205
|
-
export declare function registerIslandComponent(id: string, component: ComponentOptions): void;
|
|
206
|
-
/**
|
|
207
|
-
* 卸载 island
|
|
208
|
-
*
|
|
209
|
-
* 清理 island 的所有资源(事件监听、Observer、定时器等)。
|
|
210
|
-
*
|
|
211
|
-
* @param islandId island 标识符
|
|
212
|
-
*/
|
|
213
|
-
export declare function unmountIsland(islandId: string): void;
|
|
214
|
-
/**
|
|
215
|
-
* 获取 island 注册表(测试用)
|
|
216
|
-
*/
|
|
217
|
-
export declare function getIslandRegistry(): Map<string, IslandState>;
|
|
218
|
-
/**
|
|
219
|
-
* 清空 island 注册表(测试用)
|
|
220
|
-
*/
|
|
221
|
-
export declare function clearIslandRegistry(): void;
|
|
222
|
-
/**
|
|
223
|
-
* 创建 Hydration Island 的服务端 HTML
|
|
224
|
-
*
|
|
225
|
-
* 生成带有 data-hydrate 属性和序列化 props 的 HTML,
|
|
226
|
-
* 以及关联的 `<script type="application/json">` props 标签。
|
|
227
|
-
*
|
|
228
|
-
* @param component 组件定义
|
|
229
|
-
* @param props 组件 props
|
|
230
|
-
* @param tag 包裹标签名(默认 "div")
|
|
231
|
-
* @param hydrateWhen 注水策略("visible" | "idle" | "interaction")
|
|
232
|
-
* @returns 完整的 island HTML 字符串
|
|
233
|
-
*
|
|
234
|
-
* @example
|
|
235
|
-
* createHydrationIsland(
|
|
236
|
-
* { name: 'counter', render: (props) => ({ type: 'span', ... }) },
|
|
237
|
-
* { initialCount: 0 },
|
|
238
|
-
* )
|
|
239
|
-
* // → <div data-hydrate="counter" data-props="{"initialCount":0}">
|
|
240
|
-
* // <span>Count: 0</span>
|
|
241
|
-
* // </div>
|
|
242
|
-
* // <script type="application/json" data-hydrate-props="counter">
|
|
243
|
-
* // {"initialCount":0}
|
|
244
|
-
* // </script>
|
|
245
|
-
*/
|
|
246
|
-
export declare function createHydrationIsland(component: ComponentOptions, props?: Record<string, any>, tag?: string, hydrateWhen?: string): string;
|
|
247
|
-
/** Mismatch 警告信息 */
|
|
248
|
-
interface MismatchWarning {
|
|
249
|
-
/** island 标识符 */
|
|
250
|
-
islandId: string;
|
|
251
|
-
/** 期望的 HTML(客户端渲染) */
|
|
252
|
-
expected: string;
|
|
253
|
-
/** 实际的 HTML(服务端渲染) */
|
|
254
|
-
actual: string;
|
|
255
|
-
/** 修复建议 */
|
|
256
|
-
suggestion: string;
|
|
257
|
-
}
|
|
258
|
-
/**
|
|
259
|
-
* 获取所有 mismatch 警告(测试用)
|
|
260
|
-
*/
|
|
261
|
-
export declare function getMismatchWarnings(): MismatchWarning[];
|
|
262
|
-
/**
|
|
263
|
-
* 清空 mismatch 警告(测试用)
|
|
264
|
-
*/
|
|
265
|
-
export declare function clearMismatchWarnings(): void;
|
|
266
|
-
export {};
|
|
267
|
-
//# sourceMappingURL=hydration.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hydration.d.ts","sourceRoot":"","sources":["../../../src/ssr/hydration.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lyt.js SSR 渲染器 — 独立入口
|
|
3
|
-
*
|
|
4
|
-
* 仅包含服务端渲染(SSR)相关的 API。
|
|
5
|
-
* 使用者可通过 `import '@lytjs/renderer/ssr'` 仅加载 SSR 渲染器。
|
|
6
|
-
*/
|
|
7
|
-
export type { LytRenderer, RendererInstance } from '../renderer-interfaces';
|
|
8
|
-
export type { VNode } from '../vnode';
|
|
9
|
-
export { createRenderer, } from '../create-renderer';
|
|
10
|
-
export { Fragment, Text, Comment, ShapeFlags, PatchFlags, } from '../vnode';
|
|
11
|
-
export { StringRenderer, ssrRenderer, renderToString, renderToStream, renderToStreamGenerator } from './ssr-renderer';
|
|
12
|
-
export type { SSRVNode, SSRTextVNode, ComponentOptions, RenderToStreamOptions } from './ssr-renderer';
|
|
13
|
-
export { hydrate, isHydrating, setHydrating, onHydrated, getHydrateStats, resetHydrateStats, hydrateIsland, hydrateAllIslands, createHydrationIsland, registerIslandComponent, unmountIsland, getIslandRegistry, clearIslandRegistry, getMismatchWarnings, clearMismatchWarnings, } from './hydration';
|
|
14
|
-
export type { HydrateOptions, HydrateResult, ComponentOptions as IslandComponentOptions } from './hydration';
|
|
15
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ssr/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,YAAY,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGtC,OAAO,EACL,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,UAAU,EACV,UAAU,GACX,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACtH,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAGtG,OAAO,EACL,OAAO,EACP,WAAW,EACX,YAAY,EACZ,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,IAAI,sBAAsB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1,277 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lyt.js SSR 字符串渲染器
|
|
3
|
-
*
|
|
4
|
-
* 将 VNode 树渲染为 HTML 字符串,用于服务端渲染(SSR)场景。
|
|
5
|
-
* 纯原生零依赖实现,不依赖任何外部库。
|
|
6
|
-
*
|
|
7
|
-
* 核心功能:
|
|
8
|
-
* - renderToString(vnode) — 将 VNode 树同步序列化为完整 HTML 字符串
|
|
9
|
-
* - renderToStream(vnode, options?) — 将 VNode 树异步流式序列化(逐步输出 HTML)
|
|
10
|
-
* - createElement(tag) — 创建轻量描述对象(SSR 环境无真实 DOM)
|
|
11
|
-
* - createText(text) — 创建文本描述对象
|
|
12
|
-
* - insert(parent, child) — 将子节点添加到父节点的 children 数组
|
|
13
|
-
*
|
|
14
|
-
* 支持的 VNode 类型:
|
|
15
|
-
* - Element VNode:输出 HTML 标签 + 属性 + 子节点
|
|
16
|
-
* - Text VNode:输出转义后的文本内容
|
|
17
|
-
* - Comment VNode:输出 HTML 注释 <!-- -->
|
|
18
|
-
* - Fragment VNode:只输出子节点(无包裹标签)
|
|
19
|
-
* - Component VNode(函数式/有状态):递归渲染组件 render 函数输出
|
|
20
|
-
* - Slot VNode:渲染插槽内容
|
|
21
|
-
* - Null/Undefined:不输出任何内容
|
|
22
|
-
*
|
|
23
|
-
* 特殊处理:
|
|
24
|
-
* - class/style/event 属性的序列化
|
|
25
|
-
* - 自闭合标签(br/hr/img/input 等)
|
|
26
|
-
* - HTML 转义(防 XSS)
|
|
27
|
-
* - Fragment 多根节点支持
|
|
28
|
-
* - data-* 自定义属性
|
|
29
|
-
* - aria-* 无障碍属性
|
|
30
|
-
* - dangerouslySetInnerHTML 支持
|
|
31
|
-
* - Suspense 组件集成(流式渲染 fallback → resolved)
|
|
32
|
-
* - Islands Architecture(Partial Hydration)标记支持
|
|
33
|
-
*/
|
|
34
|
-
/** SSR 轻量元素描述对象 */
|
|
35
|
-
export interface SSRVNode {
|
|
36
|
-
/** 标签名 */
|
|
37
|
-
tag: string;
|
|
38
|
-
/** 属性 */
|
|
39
|
-
props: Record<string, any>;
|
|
40
|
-
/** 子节点 */
|
|
41
|
-
children: (SSRVNode | SSRTextVNode)[];
|
|
42
|
-
}
|
|
43
|
-
/** SSR 文本描述对象 */
|
|
44
|
-
export interface SSRTextVNode {
|
|
45
|
-
/** 类型标记 */
|
|
46
|
-
type: 'text';
|
|
47
|
-
/** 文本内容 */
|
|
48
|
-
value: string;
|
|
49
|
-
}
|
|
50
|
-
/** VNode 兼容类型(与 @lytjs/vdom 和 @lytjs/renderer 的 VNode 对齐) */
|
|
51
|
-
export interface VNode {
|
|
52
|
-
type: string | object | symbol;
|
|
53
|
-
props: Record<string, any> | null;
|
|
54
|
-
children: string | VNode[] | Record<string, any> | null;
|
|
55
|
-
key: string | number | null;
|
|
56
|
-
ref: any;
|
|
57
|
-
shapeFlag: number;
|
|
58
|
-
patchFlag: number;
|
|
59
|
-
dynamicChildren: VNode[] | null;
|
|
60
|
-
dynamicProps: string[] | null;
|
|
61
|
-
component: any;
|
|
62
|
-
el: any;
|
|
63
|
-
anchor: any;
|
|
64
|
-
[key: string]: any;
|
|
65
|
-
}
|
|
66
|
-
/** 组件类型接口(有状态组件) */
|
|
67
|
-
export interface ComponentOptions {
|
|
68
|
-
/** 组件名称 */
|
|
69
|
-
name?: string;
|
|
70
|
-
/** setup 函数 */
|
|
71
|
-
setup?: (...args: any[]) => any;
|
|
72
|
-
/** render 函数 */
|
|
73
|
-
render?: (...args: any[]) => VNode;
|
|
74
|
-
/** props 定义 */
|
|
75
|
-
props?: Record<string, any>;
|
|
76
|
-
/** slots */
|
|
77
|
-
slots?: Record<string, any>;
|
|
78
|
-
/** 其他组件选项 */
|
|
79
|
-
[key: string]: any;
|
|
80
|
-
}
|
|
81
|
-
/** renderToStream 选项 */
|
|
82
|
-
export interface RenderToStreamOptions {
|
|
83
|
-
/** Suspense 边界 ID 前缀,默认 'suspense' */
|
|
84
|
-
suspenseIdPrefix?: string;
|
|
85
|
-
}
|
|
86
|
-
import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from '@lytjs/common';
|
|
87
|
-
/** Re-export normalizeClass and normalizeStyle for external use */
|
|
88
|
-
export { _normalizeClass as normalizeClass, _normalizeStyle as normalizeStyle };
|
|
89
|
-
/**
|
|
90
|
-
* 重置 Suspense 边界 ID 计数器
|
|
91
|
-
*
|
|
92
|
-
* 在服务端渲染多个独立页面时调用,避免 ID 跨请求泄漏。
|
|
93
|
-
*/
|
|
94
|
-
export declare function resetSuspenseBoundaryId(): void;
|
|
95
|
-
/**
|
|
96
|
-
* HTML 转义 — 将特殊字符替换为 HTML 实体
|
|
97
|
-
*
|
|
98
|
-
* 防止 XSS 攻击,确保用户输入的内容不会被当作 HTML 解析。
|
|
99
|
-
*
|
|
100
|
-
* @param str 需要转义的字符串
|
|
101
|
-
* @returns 转义后的安全字符串
|
|
102
|
-
*
|
|
103
|
-
* @example
|
|
104
|
-
* escapeHTML('<script>alert("xss")</script>')
|
|
105
|
-
* // → '<script>alert("xss")</script>'
|
|
106
|
-
*/
|
|
107
|
-
export declare function escapeHTML(str: string): string;
|
|
108
|
-
/**
|
|
109
|
-
* 序列化属性值为字符串
|
|
110
|
-
*
|
|
111
|
-
* 对不同类型的属性值进行特殊处理:
|
|
112
|
-
* - class:支持字符串、数组、对象形式
|
|
113
|
-
* - style:支持字符串、对象形式
|
|
114
|
-
* - 事件(on*):SSR 环境下不序列化事件
|
|
115
|
-
* - ref/key:内部属性,不序列化
|
|
116
|
-
* - innerHTML/dangerouslySetInnerHTML:特殊处理
|
|
117
|
-
* - data-* 属性:直接序列化
|
|
118
|
-
* - aria-* 属性:直接序列化
|
|
119
|
-
* - 布尔属性:值为 true 时只输出属性名
|
|
120
|
-
* - 其他:直接转为字符串
|
|
121
|
-
*
|
|
122
|
-
* @param key 属性名
|
|
123
|
-
* @param value 属性值
|
|
124
|
-
* @returns 序列化后的属性字符串(格式:key="value"),不需要序列化时返回空字符串
|
|
125
|
-
*/
|
|
126
|
-
export declare function serializeProp(key: string, value: any): string;
|
|
127
|
-
/**
|
|
128
|
-
* 序列化所有属性
|
|
129
|
-
*
|
|
130
|
-
* 将 props 对象转换为 HTML 属性字符串
|
|
131
|
-
*
|
|
132
|
-
* @param props 属性对象
|
|
133
|
-
* @returns HTML 属性字符串(如 'class="foo" id="bar"')
|
|
134
|
-
*/
|
|
135
|
-
export declare function serializeProps(props: Record<string, any> | null): string;
|
|
136
|
-
/**
|
|
137
|
-
* SSR 字符串渲染器
|
|
138
|
-
*
|
|
139
|
-
* 将 VNode 树渲染为 HTML 字符串。实现了 LytRenderer 接口的 SSR 版本。
|
|
140
|
-
* 在 SSR 环境中,没有真实 DOM,所有操作都是基于轻量描述对象。
|
|
141
|
-
*
|
|
142
|
-
* @example
|
|
143
|
-
* const renderer = new StringRenderer()
|
|
144
|
-
* const parent = renderer.createElement('div')
|
|
145
|
-
* const child = renderer.createText('Hello')
|
|
146
|
-
* renderer.insert(parent, child)
|
|
147
|
-
* // parent.children = [{ type: 'text', value: 'Hello' }]
|
|
148
|
-
*/
|
|
149
|
-
export declare class StringRenderer {
|
|
150
|
-
/**
|
|
151
|
-
* 创建元素节点
|
|
152
|
-
*
|
|
153
|
-
* SSR 环境中没有真实 DOM,返回轻量描述对象。
|
|
154
|
-
*
|
|
155
|
-
* @param tag 标签名(如 'div', 'span')
|
|
156
|
-
* @returns 轻量元素描述对象
|
|
157
|
-
*/
|
|
158
|
-
createElement(tag: string): SSRVNode;
|
|
159
|
-
/**
|
|
160
|
-
* 创建文本节点
|
|
161
|
-
*
|
|
162
|
-
* @param text 文本内容
|
|
163
|
-
* @returns 文本描述对象
|
|
164
|
-
*/
|
|
165
|
-
createText(text: string): SSRTextVNode;
|
|
166
|
-
/**
|
|
167
|
-
* 创建注释节点
|
|
168
|
-
*
|
|
169
|
-
* SSR 中注释节点用文本描述对象表示
|
|
170
|
-
*
|
|
171
|
-
* @param text 注释内容
|
|
172
|
-
* @returns 注释描述对象
|
|
173
|
-
*/
|
|
174
|
-
createComment(text: string): SSRTextVNode;
|
|
175
|
-
/**
|
|
176
|
-
* 插入子节点到父节点
|
|
177
|
-
*
|
|
178
|
-
* SSR 中简单地将子节点添加到父节点的 children 数组。
|
|
179
|
-
*
|
|
180
|
-
* @param parent 父节点
|
|
181
|
-
* @param child 子节点
|
|
182
|
-
* @param _ref 参考节点(SSR 中忽略)
|
|
183
|
-
*/
|
|
184
|
-
insert(parent: SSRVNode, child: SSRVNode | SSRTextVNode, _ref?: any): void;
|
|
185
|
-
/**
|
|
186
|
-
* 将 VNode 渲染为 HTML 字符串(同步)
|
|
187
|
-
*
|
|
188
|
-
* 递归遍历 VNode 树,将每个节点序列化为对应的 HTML 字符串。
|
|
189
|
-
*
|
|
190
|
-
* @param vnode VNode 节点
|
|
191
|
-
* @returns 完整的 HTML 字符串
|
|
192
|
-
*
|
|
193
|
-
* @example
|
|
194
|
-
* const vnode = {
|
|
195
|
-
* type: 'div',
|
|
196
|
-
* props: { class: 'app', id: 'root' },
|
|
197
|
-
* children: [
|
|
198
|
-
* { type: 'span', props: null, children: 'Hello', shapeFlag: 8 },
|
|
199
|
-
* ],
|
|
200
|
-
* shapeFlag: 17, // ELEMENT | ARRAY_CHILDREN
|
|
201
|
-
* }
|
|
202
|
-
* renderToString(vnode)
|
|
203
|
-
* // → '<div class="app" id="root"><span>Hello</span></div>'
|
|
204
|
-
*/
|
|
205
|
-
renderToString(vnode: VNode): string;
|
|
206
|
-
/**
|
|
207
|
-
* 将 VNode 渲染为异步生成器(流式渲染)
|
|
208
|
-
*
|
|
209
|
-
* 逐步输出 HTML 字符串片段,适用于大页面或需要尽早发送响应的场景。
|
|
210
|
-
* 每个节点渲染完成后立即 yield,而不是等待整棵树渲染完成。
|
|
211
|
-
*
|
|
212
|
-
* @param vnode VNode 节点
|
|
213
|
-
* @returns 异步生成器,逐步产出 HTML 字符串片段
|
|
214
|
-
*
|
|
215
|
-
* @example
|
|
216
|
-
* for await (const chunk of renderer.renderToStream(vnode)) {
|
|
217
|
-
* res.write(chunk)
|
|
218
|
-
* }
|
|
219
|
-
* res.end()
|
|
220
|
-
*/
|
|
221
|
-
renderToStream(vnode: VNode): AsyncGenerator<string>;
|
|
222
|
-
}
|
|
223
|
-
/**
|
|
224
|
-
* 将 VNode 树渲染为完整 HTML 字符串(同步)
|
|
225
|
-
*
|
|
226
|
-
* 独立函数形式,方便直接调用而无需实例化 StringRenderer。
|
|
227
|
-
*
|
|
228
|
-
* @param vnode VNode 节点
|
|
229
|
-
* @returns 完整的 HTML 字符串
|
|
230
|
-
*
|
|
231
|
-
* @example
|
|
232
|
-
* const html = renderToString(vnode)
|
|
233
|
-
* // → '<div>Hello</div>'
|
|
234
|
-
*/
|
|
235
|
-
export declare function renderToString(vnode: VNode): string;
|
|
236
|
-
/**
|
|
237
|
-
* 将 VNode 树异步流式渲染为 ReadableStream
|
|
238
|
-
*
|
|
239
|
-
* 返回一个 Node.js ReadableStream,逐步输出 HTML 字符串片段。
|
|
240
|
-
* 支持与 Suspense 集成:遇到 Suspense 边界时,先输出 fallback 内容,
|
|
241
|
-
* 异步组件解析完成后再输出真实内容(通过占位注释标记实现替换)。
|
|
242
|
-
*
|
|
243
|
-
* @param vnode VNode 节点
|
|
244
|
-
* @param options 流式渲染选项
|
|
245
|
-
* @returns ReadableStream<string>,逐步产出 HTML 字符串片段
|
|
246
|
-
*
|
|
247
|
-
* @example
|
|
248
|
-
* const stream = renderToStream(vnode)
|
|
249
|
-
* // 在 Node.js HTTP 响应中使用
|
|
250
|
-
* Readable.fromWeb(stream).pipe(res)
|
|
251
|
-
*
|
|
252
|
-
* // 或手动消费
|
|
253
|
-
* for await (const chunk of stream) {
|
|
254
|
-
* process.stdout.write(chunk)
|
|
255
|
-
* }
|
|
256
|
-
*/
|
|
257
|
-
export declare function renderToStream(vnode: VNode, options?: RenderToStreamOptions): ReadableStream<string>;
|
|
258
|
-
/**
|
|
259
|
-
* 将 VNode 树异步流式渲染为异步生成器
|
|
260
|
-
*
|
|
261
|
-
* 与 renderToStream 类似,但返回 AsyncGenerator 而非 ReadableStream。
|
|
262
|
-
* 更轻量级,适合直接在 async 函数中使用 for-await-of 消费。
|
|
263
|
-
*
|
|
264
|
-
* @param vnode VNode 节点
|
|
265
|
-
* @param options 流式渲染选项
|
|
266
|
-
* @yields HTML 字符串片段
|
|
267
|
-
*
|
|
268
|
-
* @example
|
|
269
|
-
* for await (const chunk of renderToStreamGenerator(vnode)) {
|
|
270
|
-
* res.write(chunk)
|
|
271
|
-
* }
|
|
272
|
-
* res.end()
|
|
273
|
-
*/
|
|
274
|
-
export declare function renderToStreamGenerator(vnode: VNode, options?: RenderToStreamOptions): AsyncGenerator<string>;
|
|
275
|
-
/** 默认渲染器实例 */
|
|
276
|
-
export declare const ssrRenderer: StringRenderer;
|
|
277
|
-
//# sourceMappingURL=ssr-renderer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ssr-renderer.d.ts","sourceRoot":"","sources":["../../../src/ssr/ssr-renderer.ts"],"names":[],"mappings":"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"}
|
package/dist/types/unmount.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lyt.js 渲染器 — 卸载逻辑
|
|
3
|
-
*
|
|
4
|
-
* 本模块包含 VNode 卸载相关的函数。
|
|
5
|
-
*/
|
|
6
|
-
import type { LytRenderer } from './renderer-interfaces';
|
|
7
|
-
import type { VNode } from './vnode';
|
|
8
|
-
/**
|
|
9
|
-
* 卸载 VNode
|
|
10
|
-
*/
|
|
11
|
-
export declare function unmount(renderer: LytRenderer, unmountFn: (vnode: VNode, container?: any) => void, vnode: VNode, container?: any): void;
|
|
12
|
-
/**
|
|
13
|
-
* 批量卸载子节点
|
|
14
|
-
*/
|
|
15
|
-
export declare function unmountChildren(unmountFn: (vnode: VNode, container?: any) => void, children: VNode[]): void;
|
|
16
|
-
//# sourceMappingURL=unmount.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"unmount.d.ts","sourceRoot":"","sources":["../../src/unmount.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAGpC;;GAEG;AACH,wBAAgB,OAAO,CACrB,QAAQ,EAAE,WAAW,EACrB,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,KAAK,IAAI,EAClD,KAAK,EAAE,KAAK,EACZ,SAAS,CAAC,EAAE,GAAG,GACd,IAAI,CA4BN;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,KAAK,IAAI,EAClD,QAAQ,EAAE,KAAK,EAAE,GAChB,IAAI,CAIN"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lyt.js Vapor Mode — 独立入口
|
|
3
|
-
*
|
|
4
|
-
* 仅包含 Vapor Mode 相关的 API(无虚拟 DOM,直接操作真实 DOM)。
|
|
5
|
-
* 使用者可通过 `import '@lytjs/renderer/vapor'` 仅加载 Vapor 渲染器。
|
|
6
|
-
*/
|
|
7
|
-
export type { LytRenderer, RendererInstance } from '../renderer-interfaces';
|
|
8
|
-
export type { VNode } from '../vnode';
|
|
9
|
-
export { createRenderer, } from '../create-renderer';
|
|
10
|
-
export { Fragment, Text, Comment, ShapeFlags, PatchFlags, } from '../vnode';
|
|
11
|
-
export { createVaporElement, renderVaporNode, vaporPatch, vaporMount, setVaporDOMFactory, getVaporDOMFactory, } from './vapor-renderer';
|
|
12
|
-
export type { VaporNode, VaporBinding, VaporBindingType, VaporContainer, VaporComponentOptions, VaporApp, VaporElement, BindingCleanup, } from './vapor-renderer';
|
|
13
|
-
export { bindText, bindProp, bindAttr, bindClass, bindEvent, bindIf, bindEach, bindStyle, bindHTML, } from './vapor-reactive';
|
|
14
|
-
export { compileToVapor, parseTemplate, } from './vapor-compiler';
|
|
15
|
-
export type { VaporRenderFunction, VaporCompileResult } from './vapor-compiler';
|
|
16
|
-
export { defineVaporComponent, createVaporApp, renderVaporComponent, } from './vapor-component';
|
|
17
|
-
export type { VaporComponentInstance } from './vapor-component';
|
|
18
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vapor/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,YAAY,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGtC,OAAO,EACL,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,UAAU,EACV,UAAU,GACX,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,QAAQ,EACR,YAAY,EACZ,cAAc,GACf,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,SAAS,EACT,MAAM,EACN,QAAQ,EACR,SAAS,EACT,QAAQ,GACT,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,cAAc,EACd,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEhF,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC"}
|