@variojs/vue 0.3.0 → 0.4.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 CHANGED
@@ -109,12 +109,50 @@ export default {
109
109
  - **Provide/Inject**:`provide: { theme: 'dark' }`
110
110
  - **Teleport**:`teleport: 'body'`
111
111
 
112
+ ## 性能优化(v0.3.0)
113
+
114
+ 内置多项优化方案,经基准测试验证:
115
+
116
+ | 优化方案 | 适用场景 | 加速倍数 |
117
+ |----------|----------|----------|
118
+ | **path-memo** | 表达式密集、静态子树 | 2-88x 🔥 |
119
+ | **loopItemAsComponent** | 长列表单项更新 | 4-29x 🔥 |
120
+ | **subtreeComponent** | 大规模/深嵌套 UI | 2-12x |
121
+ | **schemaFragment** | 精确 Schema 更新 | 按需 |
122
+
123
+ ### 启用优化
124
+
125
+ ```typescript
126
+ const { vnode, state } = useVario(schema, {
127
+ rendererOptions: {
128
+ usePathMemo: true, // 默认已启用
129
+ loopItemAsComponent: true, // 推荐生产环境启用
130
+
131
+ // 方案 C:子树组件化(v0.4.0)
132
+ subtreeComponent: {
133
+ enabled: true, // 启用子树组件化
134
+ granularity: 'boundary', // 'all' | 'boundary'
135
+ maxDepth: 10 // 最大组件化深度
136
+ },
137
+
138
+ // 方案 D:Schema 碎片化(v0.4.0)
139
+ schemaFragment: {
140
+ enabled: true, // 启用 Schema 碎片化
141
+ granularity: 'node' // 'node' | 'component'
142
+ }
143
+ }
144
+ })
145
+ ```
146
+
147
+ 详见 [性能优化文档](./docs/benchmark.md)
148
+
112
149
  ## 优势
113
150
 
114
151
  - ✅ **类型推导**:完整的 TypeScript 类型支持
115
- - ✅ **性能优化**:组件解析缓存、静态属性缓存、循环上下文池
152
+ - ✅ **高性能**:path-memo、列表项组件化,最高 88 倍加速
116
153
  - ✅ **自动同步**:状态与运行时上下文双向同步
117
154
  - ✅ **Vue 原生**:computed、watch 使用 Vue 原生 API
155
+ - ✅ **节点上下文**:支持 `$parent`、`$root` 访问
118
156
 
119
157
  ## 许可证
120
158
 
@@ -2,6 +2,7 @@
2
2
  * 循环处理模块
3
3
  *
4
4
  * 负责处理 Schema 中的循环渲染;支持 parentMap / nodeContext 供事件中 $parent 使用。
5
+ * 可选列表项组件化(loopItemAsComponent):每项独立 Vue 组件,仅该项 props 变化时 re-render。
5
6
  */
6
7
  import { type VNode } from 'vue';
7
8
  import type { RuntimeContext } from '@variojs/core';
@@ -15,6 +16,12 @@ export type CreateVNodeFn = (schema: SchemaNode, ctx: RuntimeContext, modelPathS
15
16
  selfIndex?: number;
16
17
  path?: string;
17
18
  }, parentMap?: ParentMap, path?: string) => VNode | null;
19
+ export type RenderNodeForLoopItemFn = (schema: SchemaNode, ctx: RuntimeContext, modelPathStack: PathSegment[], nodeContext: {
20
+ parent?: SchemaNode;
21
+ siblings?: SchemaNode[];
22
+ selfIndex?: number;
23
+ path?: string;
24
+ } | undefined, path: string) => VNode | null;
18
25
  /**
19
26
  * 循环处理器
20
27
  */
@@ -22,7 +29,9 @@ export declare class LoopHandler {
22
29
  private pathResolver;
23
30
  private createVNode;
24
31
  private evaluateExpr;
25
- constructor(pathResolver: ModelPathResolver, createVNode: CreateVNodeFn, evaluateExpr: (expr: string, ctx: RuntimeContext) => any);
32
+ private loopItemAsComponent;
33
+ private getRenderNodeForLoopItem?;
34
+ constructor(pathResolver: ModelPathResolver, createVNode: CreateVNodeFn, evaluateExpr: (expr: string, ctx: RuntimeContext) => any, loopItemAsComponent?: boolean, getRenderNodeForLoopItem?: ((parentMap: ParentMap) => RenderNodeForLoopItemFn) | undefined);
26
35
  /**
27
36
  * 创建循环渲染的 VNode
28
37
  * @param parentMap 节点→父节点映射,循环项父节点为带 loop 的 schema
@@ -1 +1 @@
1
- {"version":3,"file":"loop-handler.d.ts","sourceRoot":"","sources":["../../src/features/loop-handler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,KAAK,CAAA;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAElD,MAAM,MAAM,aAAa,GAAG,CAC1B,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,cAAc,EACnB,cAAc,CAAC,EAAE,WAAW,EAAE,EAC9B,WAAW,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EACjG,SAAS,CAAC,EAAE,SAAS,EACrB,IAAI,CAAC,EAAE,MAAM,KACV,KAAK,GAAG,IAAI,CAAA;AAEjB;;GAEG;AACH,qBAAa,WAAW;IAEpB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,YAAY;gBAFZ,YAAY,EAAE,iBAAiB,EAC/B,WAAW,EAAE,aAAa,EAC1B,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,KAAK,GAAG;IAGlE;;;;OAIG;IACH,eAAe,CACb,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,cAAc,EACnB,cAAc,GAAE,WAAW,EAAO,EAClC,SAAS,CAAC,EAAE,SAAS,EACrB,UAAU,GAAE,MAAW,GACtB,KAAK,GAAG,IAAI;IAmHf;;;OAGG;IACH,OAAO,CAAC,cAAc;IAmBtB;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;CAwBvB"}
1
+ {"version":3,"file":"loop-handler.d.ts","sourceRoot":"","sources":["../../src/features/loop-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,KAAK,CAAA;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAGlD,MAAM,MAAM,aAAa,GAAG,CAC1B,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,cAAc,EACnB,cAAc,CAAC,EAAE,WAAW,EAAE,EAC9B,WAAW,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EACjG,SAAS,CAAC,EAAE,SAAS,EACrB,IAAI,CAAC,EAAE,MAAM,KACV,KAAK,GAAG,IAAI,CAAA;AAEjB,MAAM,MAAM,uBAAuB,GAAG,CACpC,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,cAAc,EACnB,cAAc,EAAE,WAAW,EAAE,EAC7B,WAAW,EAAE;IAAE,MAAM,CAAC,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,EAC5G,IAAI,EAAE,MAAM,KACT,KAAK,GAAG,IAAI,CAAA;AAEjB;;GAEG;AACH,qBAAa,WAAW;IAEpB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,wBAAwB,CAAC;gBAJzB,YAAY,EAAE,iBAAiB,EAC/B,WAAW,EAAE,aAAa,EAC1B,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,KAAK,GAAG,EACxD,mBAAmB,GAAE,OAAe,EACpC,wBAAwB,CAAC,GAAE,CAAC,SAAS,EAAE,SAAS,KAAK,uBAAuB,aAAA;IAGtF;;;;OAIG;IACH,eAAe,CACb,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,cAAc,EACnB,cAAc,GAAE,WAAW,EAAO,EAClC,SAAS,CAAC,EAAE,SAAS,EACrB,UAAU,GAAE,MAAW,GACtB,KAAK,GAAG,IAAI;IAmIf;;;OAGG;IACH,OAAO,CAAC,cAAc;IAmBtB;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;CAwBvB"}
@@ -1 +1 @@
1
- import{h as c,Fragment as S}from"vue";import{createLoopContext as b}from"@variojs/core";class V{pathResolver;createVNode;evaluateExpr;constructor(e,t,o){this.pathResolver=e,this.createVNode=t,this.evaluateExpr=o}createLoopVNode(e,t,o=[],n,f=""){const{loop:i}=e;if(!i)return null;const h=this.pathResolver.extractModelPath(i.items);let d;try{const r=this.evaluateExpr(h,t);if(!Array.isArray(r))return c("div",{style:"color: red; padding: 10px;"},`Loop items must be an array, got: ${typeof r}`);d=r}catch(r){const l=r instanceof Error?r.message:String(r);return c("div",{style:"color: red; padding: 10px;"},`Loop items evaluation error: ${l}`)}if(d.length===0)return null;let y=[...o];const u=this.pathResolver.getScopePath(e.model);u&&(y=this.pathResolver.updateModelPathStack(u,o,t,e));const g=d.map((r,l)=>{try{const s=b(t,r,l);s[i.itemKey]=r,i.indexKey&&(s[i.indexKey]=l);const a={...e};delete a.loop;const v=this.pathResolver.getModelPath(e.model);v&&this.pathResolver.extractModelPath(v)===h&&delete a.model,this.markLoopSchema(a,i.items),n?.set(a,e);const m=[...y,l],L=f?`${f}.[${l}]`:`[${l}]`,p=this.createVNode(a,s,m,{parent:e,siblings:[],selfIndex:l,path:L},n,L);if(p&&typeof p=="object"&&"key"in p){const k=this.getLoopItemKey(r,i.itemKey,l);p.key=k}return p}catch(s){const a=s instanceof Error?s.message:String(s);return console.warn(`Loop item render error at index ${l}:`,a),c("div",{key:`error-${l}`,style:"color: red; padding: 5px;"},`Render error: ${a}`)}}).filter(r=>r!=null);return g.length===0?null:c(S,null,g)}markLoopSchema(e,t){e.__loopItems=t,e.children&&(Array.isArray(e.children)?e.children.forEach(o=>{o&&typeof o=="object"&&!Array.isArray(o)&&"type"in o&&this.markLoopSchema(o,t)}):typeof e.children=="object"&&!Array.isArray(e.children)&&"type"in e.children&&this.markLoopSchema(e.children,t))}getLoopItemKey(e,t,o){if(e&&typeof e=="object"){if(t in e&&e[t]!=null){const n=e[t];if(typeof n=="string"||typeof n=="number")return n}if("id"in e&&e.id!=null){const n=e.id;if(typeof n=="string"||typeof n=="number")return n}}return o}}export{V as LoopHandler};
1
+ import{h as c,Fragment as N}from"vue";import{createLoopContext as b}from"@variojs/core";import{LoopItemCell as P}from"./loop-item-cell.js";class E{pathResolver;createVNode;evaluateExpr;loopItemAsComponent;getRenderNodeForLoopItem;constructor(e,r,n,t=!1,a){this.pathResolver=e,this.createVNode=r,this.evaluateExpr=n,this.loopItemAsComponent=t,this.getRenderNodeForLoopItem=a}createLoopVNode(e,r,n=[],t,a=""){const{loop:i}=e;if(!i)return null;const m=this.pathResolver.extractModelPath(i.items);let y;try{const o=this.evaluateExpr(m,r);if(!Array.isArray(o))return c("div",{style:"color: red; padding: 10px;"},`Loop items must be an array, got: ${typeof o}`);y=o}catch(o){const l=o instanceof Error?o.message:String(o);return c("div",{style:"color: red; padding: 10px;"},`Loop items evaluation error: ${l}`)}if(y.length===0)return null;let h=[...n];const g=this.pathResolver.getScopePath(e.model);g&&(h=this.pathResolver.updateModelPathStack(g,n,r,e));const L=this.loopItemAsComponent&&this.getRenderNodeForLoopItem!=null&&t!=null,v=L?this.getRenderNodeForLoopItem(t):null,I=y.map((o,l)=>{try{const s={...e};delete s.loop;const p=this.pathResolver.getModelPath(e.model);p&&this.pathResolver.extractModelPath(p)===m&&delete s.model,this.markLoopSchema(s,i.items);const S=[...h,l],f=a?`${a}.[${l}]`:`[${l}]`,k=this.getLoopItemKey(o,i.itemKey,l);if(L&&v)return c(P,{key:k,item:o,index:l,childSchema:s,parentSchema:e,parentCtx:r,modelPathStack:h,parentPath:a,itemPath:f,itemKey:i.itemKey,indexKey:i.indexKey,loop:i,renderNode:v,getLoopItemKey:(R,A,K)=>this.getLoopItemKey(R,A,K)});t?.set(s,e);const u=b(r,o,l);u[i.itemKey]=o,i.indexKey&&(u[i.indexKey]=l);const d=this.createVNode(s,u,S,{parent:e,siblings:[],selfIndex:l,path:f},t,f);return d&&typeof d=="object"&&"key"in d&&(d.key=k),d}catch(s){const p=s instanceof Error?s.message:String(s);return console.warn(`Loop item render error at index ${l}:`,p),c("div",{key:`error-${l}`,style:"color: red; padding: 5px;"},`Render error: ${p}`)}}).filter(o=>o!=null);return I.length===0?null:c(N,null,I)}markLoopSchema(e,r){e.__loopItems=r,e.children&&(Array.isArray(e.children)?e.children.forEach(n=>{n&&typeof n=="object"&&!Array.isArray(n)&&"type"in n&&this.markLoopSchema(n,r)}):typeof e.children=="object"&&!Array.isArray(e.children)&&"type"in e.children&&this.markLoopSchema(e.children,r))}getLoopItemKey(e,r,n){if(e&&typeof e=="object"){if(r in e&&e[r]!=null){const t=e[r];if(typeof t=="string"||typeof t=="number")return t}if("id"in e&&e.id!=null){const t=e.id;if(typeof t=="string"||typeof t=="number")return t}}return n}}export{E as LoopHandler};
@@ -1 +1 @@
1
- {"version":3,"file":"loop-handler.js","sourceRoot":"","sources":["../../src/features/loop-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loop-handler.js","sourceRoot":"","sources":["../../src/features/loop-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * 列表项组件化:每项独立 Vue 组件,仅该项 props 变化时 re-render。
3
+ * 与 path-memo 并存:列表用 B,其它用 A。
4
+ */
5
+ import { type VNode } from 'vue';
6
+ import type { RuntimeContext } from '@variojs/core';
7
+ import type { SchemaNode } from '@variojs/schema';
8
+ import type { PathSegment } from '@variojs/core';
9
+ export interface LoopItemCellProps {
10
+ item: unknown;
11
+ index: number;
12
+ childSchema: SchemaNode;
13
+ parentSchema: SchemaNode;
14
+ parentCtx: RuntimeContext;
15
+ modelPathStack: PathSegment[];
16
+ parentPath: string;
17
+ itemPath: string;
18
+ itemKey: string;
19
+ indexKey?: string;
20
+ loop: {
21
+ items: string;
22
+ itemKey: string;
23
+ indexKey?: string;
24
+ };
25
+ renderNode: (schema: SchemaNode, ctx: RuntimeContext, modelPathStack: PathSegment[], nodeContext: {
26
+ parent?: SchemaNode;
27
+ siblings?: SchemaNode[];
28
+ selfIndex?: number;
29
+ path?: string;
30
+ }, path: string) => VNode | null;
31
+ getLoopItemKey: (item: unknown, itemKey: string, index: number) => string | number;
32
+ }
33
+ export declare const LoopItemCell: import("vue").DefineComponent<{
34
+ item: unknown;
35
+ index: number;
36
+ childSchema: SchemaNode;
37
+ parentSchema: SchemaNode;
38
+ parentCtx: Record<string, unknown> & {
39
+ $emit: (event: string, data?: unknown) => void;
40
+ $methods: import("@variojs/core").MethodsRegistry;
41
+ $exprOptions?: import("@variojs/core").ExpressionOptions;
42
+ $event?: Event;
43
+ $item?: unknown;
44
+ $index?: number;
45
+ _get: <TPath extends string>(path: TPath) => import("@variojs/core/dist/types").GetPathValue<Record<string, unknown>, TPath>;
46
+ _set: <TPath extends string>(path: TPath, value: import("@variojs/core/dist/types").GetPathValue<Record<string, unknown>, TPath>, options?: {
47
+ skipCallback?: boolean;
48
+ }) => void;
49
+ };
50
+ modelPathStack: PathSegment[];
51
+ parentPath: string;
52
+ itemPath: string;
53
+ itemKey: string;
54
+ indexKey?: string | undefined;
55
+ loop: {
56
+ items: string;
57
+ itemKey: string;
58
+ indexKey?: string;
59
+ };
60
+ renderNode: (schema: SchemaNode, ctx: RuntimeContext, modelPathStack: PathSegment[], nodeContext: {
61
+ parent?: SchemaNode;
62
+ siblings?: SchemaNode[];
63
+ selfIndex?: number;
64
+ path?: string;
65
+ }, path: string) => VNode | null;
66
+ getLoopItemKey: (item: unknown, itemKey: string, index: number) => string | number;
67
+ }, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
68
+ [key: string]: any;
69
+ }> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
70
+ item: unknown;
71
+ index: number;
72
+ childSchema: SchemaNode;
73
+ parentSchema: SchemaNode;
74
+ parentCtx: Record<string, unknown> & {
75
+ $emit: (event: string, data?: unknown) => void;
76
+ $methods: import("@variojs/core").MethodsRegistry;
77
+ $exprOptions?: import("@variojs/core").ExpressionOptions;
78
+ $event?: Event;
79
+ $item?: unknown;
80
+ $index?: number;
81
+ _get: <TPath extends string>(path: TPath) => import("@variojs/core/dist/types").GetPathValue<Record<string, unknown>, TPath>;
82
+ _set: <TPath extends string>(path: TPath, value: import("@variojs/core/dist/types").GetPathValue<Record<string, unknown>, TPath>, options?: {
83
+ skipCallback?: boolean;
84
+ }) => void;
85
+ };
86
+ modelPathStack: PathSegment[];
87
+ parentPath: string;
88
+ itemPath: string;
89
+ itemKey: string;
90
+ indexKey?: string | undefined;
91
+ loop: {
92
+ items: string;
93
+ itemKey: string;
94
+ indexKey?: string;
95
+ };
96
+ renderNode: (schema: SchemaNode, ctx: RuntimeContext, modelPathStack: PathSegment[], nodeContext: {
97
+ parent?: SchemaNode;
98
+ siblings?: SchemaNode[];
99
+ selfIndex?: number;
100
+ path?: string;
101
+ }, path: string) => VNode | null;
102
+ getLoopItemKey: (item: unknown, itemKey: string, index: number) => string | number;
103
+ }> & Readonly<{}>, {
104
+ indexKey: string;
105
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
106
+ //# sourceMappingURL=loop-item-cell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop-item-cell.d.ts","sourceRoot":"","sources":["../../src/features/loop-item-cell.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ import{defineComponent as u}from"vue";import{createLoopContext as o}from"@variojs/core";const a=u({name:"LoopItemCell",props:{item:{type:null,required:!0},index:{type:Number,required:!0},childSchema:{type:Object,required:!0},parentSchema:{type:Object,required:!0},parentCtx:{type:Object,required:!0},modelPathStack:{type:Array,required:!0},parentPath:{type:String,required:!0},itemPath:{type:String,required:!0},itemKey:{type:String,required:!0},indexKey:{type:String,default:void 0},loop:{type:Object,required:!0},renderNode:{type:Function,required:!0},getLoopItemKey:{type:Function,required:!0}},setup(e){return()=>{const r=o(e.parentCtx,e.item,e.index),i=e.loop;r[i.itemKey]=e.item,i.indexKey&&(r[i.indexKey]=e.index);const n={parent:e.parentSchema,siblings:[],selfIndex:e.index,path:e.itemPath},t=e.renderNode(e.childSchema,r,e.modelPathStack,n,e.itemPath);if(t&&typeof t=="object"&&"key"in t){const d=e.getLoopItemKey(e.item,e.itemKey,e.index);t.key=d}return t}}});export{a as LoopItemCell};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop-item-cell.js","sourceRoot":"","sources":["../../src/features/loop-item-cell.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAc,MAAM,KAAK,CAAA;AAGjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAyBjD,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC;IAC1C,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE;QACL,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;QACpC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;QACvC,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7C,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC9C,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3C,cAAc,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC/C,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC5C,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC1C,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;QACzC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;QAC9C,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;QACtC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC9C,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;KACnD;IACD,KAAK,CAAC,KAAwB;QAC5B,OAAO,GAAG,EAAE;YACV,MAAM,OAAO,GAAG,iBAAiB,CAC/B,KAAK,CAAC,SAA2B,EACjC,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,KAAK,CACZ,CAAA;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAA8C,CAChE;YAAC,OAAmC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,CAAA;YAChE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,CAAC;gBAAC,OAAmC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,KAAK,CAAA;YACpE,CAAC;YACD,MAAM,WAAW,GAAG;gBAClB,MAAM,EAAE,KAAK,CAAC,YAAY;gBAC1B,QAAQ,EAAE,EAAkB;gBAC5B,SAAS,EAAE,KAAK,CAAC,KAAK;gBACtB,IAAI,EAAE,KAAK,CAAC,QAAQ;aACrB,CAAA;YACD,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAC5B,KAAK,CAAC,WAAW,EACjB,OAAO,EACP,KAAK,CAAC,cAAc,EACpB,WAAW,EACX,KAAK,CAAC,QAAQ,CACf,CAAA;YACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;gBACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAC5E;gBAAC,KAA2C,CAAC,GAAG,GAAG,QAAQ,CAAA;YAC9D,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC,CAAA;IACH,CAAC;CACF,CAAC,CAAA"}
@@ -3,12 +3,14 @@
3
3
  *
4
4
  * 缓存 key = path + schema 标识 + 依赖值(cond/show 等),
5
5
  * 再次渲染时若输入未变则直接返回缓存 VNode,不递归子节点。
6
- * 含 loop 的节点不缓存(子树依赖 state,缓存会返回旧子节点)。
6
+ * 含 loop model 绑定的节点(及子树)不缓存(依赖 state,缓存会返回旧 VNode 导致双向绑定失效)。
7
7
  */
8
8
  import type { SchemaNode } from '@variojs/schema';
9
9
  import type { VNode } from 'vue';
10
10
  /** 是否包含 loop 子节点(含自身),含则不应缓存 */
11
11
  export declare function hasLoopInSubtree(schema: SchemaNode): boolean;
12
+ /** 是否包含 model 绑定的子节点(含自身),含则不应缓存,否则缓存会返回旧 value 导致输入框等双向绑定失效 */
13
+ export declare function hasModelInSubtree(schema: SchemaNode): boolean;
12
14
  /** 从 schema 生成稳定标识(不包含求值结果) */
13
15
  export declare function buildSchemaId(schema: SchemaNode): string;
14
16
  /** 依赖键:cond/show 的求值结果,用于缓存失效 */
@@ -1 +1 @@
1
- {"version":3,"file":"path-memo.d.ts","sourceRoot":"","sources":["../../src/features/path-memo.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,CAAA;AAEhC,gCAAgC;AAChC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAK5D;AAED,+BAA+B;AAC/B,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAWxD;AAED,iCAAiC;AACjC,wBAAgB,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,CAE3E;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnF;AAED,0BAA0B;AAC1B,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAA2B;IAExC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAInC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAIpC,8BAA8B;IAC9B,KAAK,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"path-memo.d.ts","sourceRoot":"","sources":["../../src/features/path-memo.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,CAAA;AAEhC,gCAAgC;AAChC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAK5D;AAiBD,gEAAgE;AAChE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAK7D;AAED,+BAA+B;AAC/B,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAWxD;AAED,iCAAiC;AACjC,wBAAgB,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,CAE3E;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnF;AAED,0BAA0B;AAC1B,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAA2B;IAExC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAInC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAIpC,8BAA8B;IAC9B,KAAK,IAAI,IAAI;CAGd"}
@@ -1 +1 @@
1
- function i(r){if(r.loop)return!0;const t=r.children;return Array.isArray(t)?t.some(e=>i(e)):!1}function l(r){const t=r.type??"",e=r.cond??"",n=r.show??"",o=r.loop!=null?JSON.stringify(r.loop):"",c=Array.isArray(r.children)?r.children.length:r.children!=null?1:0;return`${t}|${e}|${n}|${o}|${c}`}function u(r,t){return`${String(r)}|${String(t)}`}function p(r,t,e){return`${r}|${t}|${e}`}class s{cache=new Map;get(t){return this.cache.get(t)}set(t,e){this.cache.set(t,e)}clear(){this.cache.clear()}}export{s as PathMemoCache,u as buildDepsKey,l as buildSchemaId,p as getCacheKey,i as hasLoopInSubtree};
1
+ function l(t){if(t.loop)return!0;const r=t.children;return Array.isArray(r)?r.some(e=>l(e)):!1}function c(t){const r=t.model;if(r!=null){if(typeof r=="string")return r.length>0;const n=r;if(n.path!=null&&n.path.length>0&&n.scope!==!0)return!0}const e=t;for(const n of Object.keys(e))if(n.startsWith("model:")&&typeof e[n]=="string"&&e[n].length>0)return!0;return!1}function u(t){if(c(t))return!0;const r=t.children;return Array.isArray(r)?r.some(e=>u(e)):!1}function s(t){const r=t.type??"",e=t.cond??"",n=t.show??"",o=t.loop!=null?JSON.stringify(t.loop):"",i=Array.isArray(t.children)?t.children.length:t.children!=null?1:0;return`${r}|${e}|${n}|${o}|${i}`}function f(t,r){return`${String(t)}|${String(r)}`}function h(t,r,e){return`${t}|${r}|${e}`}class p{cache=new Map;get(r){return this.cache.get(r)}set(r,e){this.cache.set(r,e)}clear(){this.cache.clear()}}export{p as PathMemoCache,f as buildDepsKey,s as buildSchemaId,h as getCacheKey,l as hasLoopInSubtree,u as hasModelInSubtree};
@@ -1 +1 @@
1
- {"version":3,"file":"path-memo.js","sourceRoot":"","sources":["../../src/features/path-memo.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,gCAAgC;AAChC,MAAM,UAAU,gBAAgB,CAAC,MAAkB;IACjD,IAAI,MAAM,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;IAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAA;IAC1C,OAAQ,QAAyB,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;AAChF,CAAC;AAED,+BAA+B;AAC/B,MAAM,UAAU,aAAa,CAAC,MAAkB;IAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAA;IAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAA;IAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAA;IAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACnE,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChD,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM;QACxB,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI;YACvB,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,CAAC,CAAA;IACP,OAAO,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,WAAW,EAAE,CAAA;AACzD,CAAC;AAED,iCAAiC;AACjC,MAAM,UAAU,YAAY,CAAC,SAAkB,EAAE,SAAkB;IACjE,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAA;AACpD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,QAAgB,EAAE,OAAe;IACzE,OAAO,GAAG,IAAI,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAA;AACzC,CAAC;AAED,0BAA0B;AAC1B,MAAM,OAAO,aAAa;IAChB,KAAK,GAAG,IAAI,GAAG,EAAiB,CAAA;IAExC,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAY;QAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC5B,CAAC;IAED,8BAA8B;IAC9B,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;CACF"}
1
+ {"version":3,"file":"path-memo.js","sourceRoot":"","sources":["../../src/features/path-memo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * 方案 D:Schema 按 path 碎片化
3
+ *
4
+ * 核心思路:
5
+ * - 不再用一棵 reactive(schema) 大树,而是维护 path → reactive(node) 的映射
6
+ * - 改某 path 的 node 只触发依赖该 path 的 effect
7
+ * - 为 path-memo 或子树组件化提供「精确失效」的数据基础
8
+ *
9
+ * 用户 API 不变,内部实现优化
10
+ */
11
+ import type { SchemaNode } from '@variojs/schema';
12
+ /**
13
+ * Schema 碎片存储
14
+ * path → reactive(node) 映射
15
+ */
16
+ export interface SchemaStore {
17
+ /** 根据 path 获取节点(返回 reactive 节点) */
18
+ get(path: string): SchemaNode | undefined;
19
+ /** 设置节点(自动创建 reactive) */
20
+ set(path: string, node: SchemaNode): void;
21
+ /** 删除节点 */
22
+ delete(path: string): void;
23
+ /** 检查节点是否存在 */
24
+ has(path: string): boolean;
25
+ /** 获取所有路径 */
26
+ keys(): string[];
27
+ /** 清空存储 */
28
+ clear(): void;
29
+ /** 获取根节点 */
30
+ getRoot(): SchemaNode | undefined;
31
+ /** 从完整 schema 树初始化 */
32
+ fromTree(schema: SchemaNode): void;
33
+ /** 还原为完整 schema 树 */
34
+ toTree(): SchemaNode | undefined;
35
+ /** Patch 某个 path 的节点(触发精确更新) */
36
+ patch(path: string, partialNode: Partial<SchemaNode>): void;
37
+ /** 获取节点的子节点路径 */
38
+ getChildPaths(path: string): string[];
39
+ /** 获取版本号(用于检测变化) */
40
+ getVersion(path: string): number;
41
+ /** 触发路径更新(手动通知依赖方) */
42
+ trigger(path: string): void;
43
+ }
44
+ /**
45
+ * 路径工具函数
46
+ */
47
+ export declare function joinPath(parent: string, index: number | string): string;
48
+ export declare function getParentPath(path: string): string;
49
+ export declare function getLastSegment(path: string): string;
50
+ /**
51
+ * 创建 Schema 碎片存储
52
+ */
53
+ export declare function createSchemaStore(): SchemaStore;
54
+ /**
55
+ * Schema 碎片化选项
56
+ */
57
+ export interface SchemaFragmentOptions {
58
+ /** 是否启用碎片化(默认 false,需显式开启) */
59
+ enabled?: boolean;
60
+ /** 碎片粒度:'node' 每个节点 | 'component' 仅组件边界 */
61
+ granularity?: 'node' | 'component';
62
+ }
63
+ /**
64
+ * 判断节点是否为组件边界(用于 granularity: 'component')
65
+ */
66
+ export declare function isComponentBoundary(node: SchemaNode): boolean;
67
+ /**
68
+ * 创建路径到节点的快速查找映射(用于渲染优化)
69
+ */
70
+ export declare function createPathLookup(schema: SchemaNode): Map<string, SchemaNode>;
71
+ //# sourceMappingURL=schema-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-store.d.ts","sourceRoot":"","sources":["../../src/features/schema-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,mCAAmC;IACnC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAA;IACzC,0BAA0B;IAC1B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAAA;IACzC,WAAW;IACX,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,eAAe;IACf,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IAC1B,aAAa;IACb,IAAI,IAAI,MAAM,EAAE,CAAA;IAChB,WAAW;IACX,KAAK,IAAI,IAAI,CAAA;IACb,YAAY;IACZ,OAAO,IAAI,UAAU,GAAG,SAAS,CAAA;IACjC,sBAAsB;IACtB,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;IAClC,qBAAqB;IACrB,MAAM,IAAI,UAAU,GAAG,SAAS,CAAA;IAChC,gCAAgC;IAChC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAA;IAC3D,iBAAiB;IACjB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACrC,oBAAoB;IACpB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IAChC,sBAAsB;IACtB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAGvE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIlD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAInD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,WAAW,CA8I/C;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,8BAA8B;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,GAAG,WAAW,CAAA;CACnC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAa7D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAqB5E"}
@@ -0,0 +1 @@
1
+ import{shallowReactive as a,toRaw as d}from"vue";function h(t,r){return t===""?String(r):`${t}.${r}`}function p(t){const r=t.lastIndexOf(".");return r===-1?"":t.substring(0,r)}function P(t){const r=t.lastIndexOf(".");return r===-1?t:t.substring(r+1)}function m(){const t=a(new Map),r=a(new Map),c=new Map;function o(e,n){const i=a({...e});if(t.set(n,i),r.set(n,0),e.children){const f=[];if(Array.isArray(e.children))e.children.forEach((s,g)=>{if(s&&typeof s=="object"&&"type"in s){const u=h(n,g);f.push(u),o(s,u)}});else if(typeof e.children=="object"&&"type"in e.children){const s=h(n,0);f.push(s),o(e.children,s)}c.set(n,f)}}function l(e){const n=t.get(e);if(!n)return;const i={...d(n)},f=c.get(e);if(f&&f.length>0){const s=[];for(const g of f){const u=l(g);u&&s.push(u)}s.length===1&&!Array.isArray(n.children)?i.children=s[0]:s.length>0&&(i.children=s)}return i}return{get(e){return t.get(e)},set(e,n){const i=a({...n});t.set(e,i),r.set(e,(r.get(e)??0)+1)},delete(e){const n=c.get(e);if(n){for(const i of n)this.delete(i);c.delete(e)}t.delete(e),r.delete(e)},has(e){return t.has(e)},keys(){return Array.from(t.keys())},clear(){t.clear(),r.clear(),c.clear()},getRoot(){return t.get("")},fromTree(e){this.clear(),o(e,"")},toTree(){return l("")},patch(e,n){const i=t.get(e);i&&(Object.assign(i,n),r.set(e,(r.get(e)??0)+1))},getChildPaths(e){return c.get(e)??[]},getVersion(e){return r.get(e)??0},trigger(e){r.set(e,(r.get(e)??0)+1)}}}function b(t){const r=t.type,c=typeof r=="string"&&/^[A-Z]/.test(r),o=!!t.loop,l=t,e=!!(l.onMounted||l.provide||l.inject);return c||o||e}function w(t){const r=new Map;function c(o,l){r.set(l,o),o.children&&(Array.isArray(o.children)?o.children.forEach((e,n)=>{e&&typeof e=="object"&&"type"in e&&c(e,h(l,n))}):typeof o.children=="object"&&"type"in o.children&&c(o.children,h(l,0)))}return c(t,""),r}export{w as createPathLookup,m as createSchemaStore,P as getLastSegment,p as getParentPath,b as isComponentBoundary,h as joinPath};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-store.js","sourceRoot":"","sources":["../../src/features/schema-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,162 @@
1
+ /**
2
+ * 方案 C:子树组件化
3
+ *
4
+ * 核心思路:
5
+ * - 每个 Schema 节点(或每个"组件边界")渲染为一个独立的 Vue 组件 VarioNode
6
+ * - 通过 props 传入 (schemaNode, ctx, path)
7
+ * - Vue 对 props 未变的组件不 re-render,实现自动局部更新
8
+ *
9
+ * 用户写法完全不变,内部架构优化
10
+ */
11
+ import { type VNode, type PropType } from 'vue';
12
+ import type { SchemaNode } from '@variojs/schema';
13
+ import type { RuntimeContext, PathSegment } from '@variojs/core';
14
+ import type { NodeContext, ParentMap } from './node-context.js';
15
+ import type { VueSchemaNode } from '../types.js';
16
+ /**
17
+ * VarioNode 组件的 Props
18
+ */
19
+ export interface VarioNodeProps {
20
+ /** Schema 节点 */
21
+ schema: SchemaNode;
22
+ /** 运行时上下文 */
23
+ ctx: RuntimeContext;
24
+ /** 节点路径 */
25
+ path: string;
26
+ /** Model 路径栈 */
27
+ modelPathStack: PathSegment[];
28
+ /** 节点上下文(父节点、兄弟节点等) */
29
+ nodeContext?: NodeContext;
30
+ /** 父节点映射 */
31
+ parentMap?: ParentMap;
32
+ /** 渲染器引用(用于调用内部方法) */
33
+ renderer: VarioNodeRenderer;
34
+ /** 组件级别(用于性能调试) */
35
+ depth?: number;
36
+ }
37
+ /**
38
+ * VarioNode 需要的渲染器接口
39
+ */
40
+ export interface VarioNodeRenderer {
41
+ /** 解析组件类型 */
42
+ resolveComponent: (type: string) => any;
43
+ /** 求值表达式 */
44
+ evaluateExpr: (expr: string, ctx: RuntimeContext) => unknown;
45
+ /** 构建属性 */
46
+ buildAttrs: (schema: SchemaNode, ctx: RuntimeContext, component: any, modelPathStack: PathSegment[], nodeContext?: NodeContext, parentMap?: ParentMap) => Record<string, any>;
47
+ /** 解析子节点 */
48
+ resolveChildren: (schema: SchemaNode, ctx: RuntimeContext, modelPathStack: PathSegment[], parentMap?: ParentMap, path?: string) => any;
49
+ /** 处理生命周期 */
50
+ createComponentWithLifecycle?: (component: any, attrs: Record<string, any>, children: any, vueSchema: VueSchemaNode, ctx: RuntimeContext) => VNode;
51
+ /** 附加 ref */
52
+ attachRef?: (vnode: VNode, vueSchema: VueSchemaNode) => VNode;
53
+ /** 获取 model 路径栈更新 */
54
+ getUpdatedModelPathStack?: (schema: SchemaNode, modelPathStack: PathSegment[], ctx: RuntimeContext) => PathSegment[];
55
+ }
56
+ /**
57
+ * 子树组件化选项
58
+ */
59
+ export interface SubtreeComponentOptions {
60
+ /** 是否启用子树组件化(默认 false) */
61
+ enabled?: boolean;
62
+ /** 组件化粒度:'all' 所有节点 | 'boundary' 仅组件边界 */
63
+ granularity?: 'all' | 'boundary';
64
+ /** 最大深度(超过后不再组件化,避免过度嵌套) */
65
+ maxDepth?: number;
66
+ }
67
+ /**
68
+ * 判断是否应该组件化该节点
69
+ */
70
+ export declare function shouldComponentize(schema: SchemaNode, depth: number, options: SubtreeComponentOptions): boolean;
71
+ /**
72
+ * VarioNode - 子树组件化的核心组件
73
+ *
74
+ * 每个 VarioNode 代表 schema 树中的一个节点,
75
+ * Vue 会自动对 props 未变的组件跳过 re-render。
76
+ */
77
+ export declare const VarioNode: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
78
+ schema: {
79
+ type: PropType<SchemaNode>;
80
+ required: true;
81
+ };
82
+ ctx: {
83
+ type: PropType<RuntimeContext>;
84
+ required: true;
85
+ };
86
+ path: {
87
+ type: StringConstructor;
88
+ required: true;
89
+ };
90
+ modelPathStack: {
91
+ type: PropType<PathSegment[]>;
92
+ default: () => never[];
93
+ };
94
+ nodeContext: {
95
+ type: PropType<NodeContext>;
96
+ default: undefined;
97
+ };
98
+ parentMap: {
99
+ type: PropType<ParentMap>;
100
+ default: undefined;
101
+ };
102
+ renderer: {
103
+ type: PropType<VarioNodeRenderer>;
104
+ required: true;
105
+ };
106
+ depth: {
107
+ type: NumberConstructor;
108
+ default: number;
109
+ };
110
+ }>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
111
+ [key: string]: any;
112
+ }> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
113
+ schema: {
114
+ type: PropType<SchemaNode>;
115
+ required: true;
116
+ };
117
+ ctx: {
118
+ type: PropType<RuntimeContext>;
119
+ required: true;
120
+ };
121
+ path: {
122
+ type: StringConstructor;
123
+ required: true;
124
+ };
125
+ modelPathStack: {
126
+ type: PropType<PathSegment[]>;
127
+ default: () => never[];
128
+ };
129
+ nodeContext: {
130
+ type: PropType<NodeContext>;
131
+ default: undefined;
132
+ };
133
+ parentMap: {
134
+ type: PropType<ParentMap>;
135
+ default: undefined;
136
+ };
137
+ renderer: {
138
+ type: PropType<VarioNodeRenderer>;
139
+ required: true;
140
+ };
141
+ depth: {
142
+ type: NumberConstructor;
143
+ default: number;
144
+ };
145
+ }>> & Readonly<{}>, {
146
+ modelPathStack: PathSegment[];
147
+ nodeContext: NodeContext;
148
+ parentMap: ParentMap;
149
+ depth: number;
150
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
151
+ /**
152
+ * 创建 VarioNode 的 VNode
153
+ * 便捷工厂函数
154
+ */
155
+ export declare function createVarioNodeVNode(schema: SchemaNode, ctx: RuntimeContext, path: string, renderer: VarioNodeRenderer, options?: {
156
+ modelPathStack?: PathSegment[];
157
+ nodeContext?: NodeContext;
158
+ parentMap?: ParentMap;
159
+ depth?: number;
160
+ key?: string | number;
161
+ }): VNode;
162
+ //# sourceMappingURL=vario-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vario-node.d.ts","sourceRoot":"","sources":["../../src/features/vario-node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ import{defineComponent as M,h as s,computed as m,Transition as N,KeepAlive as O}from"vue";function L(e,f,o){if(!o.enabled||o.maxDepth!==void 0&&f>o.maxDepth)return!1;if(o.granularity==="boundary"){const l=e.type,n=typeof l=="string"&&/^[A-Z]/.test(l),a=!!e.loop,d=e,v=!!(d.onMounted||d.provide||d.inject);return n||a||v}return!0}const U=M({name:"VarioNode",props:{schema:{type:Object,required:!0},ctx:{type:Object,required:!0},path:{type:String,required:!0},modelPathStack:{type:Array,default:()=>[]},nodeContext:{type:Object,default:void 0},parentMap:{type:Object,default:void 0},renderer:{type:Object,required:!0},depth:{type:Number,default:0}},setup(e){const f=m(()=>{if(!e.schema.cond)return!0;try{return e.renderer.evaluateExpr(e.schema.cond,e.ctx)}catch{return!1}}),o=m(()=>{if(!e.schema.show)return!0;try{return e.renderer.evaluateExpr(e.schema.show,e.ctx)}catch{return!0}}),l=m(()=>e.renderer.resolveComponent(e.schema.type)),n=m(()=>e.renderer.getUpdatedModelPathStack?e.renderer.getUpdatedModelPathStack(e.schema,e.modelPathStack,e.ctx):e.modelPathStack);return()=>{const{schema:a,ctx:d,path:v,nodeContext:b,parentMap:x,renderer:u}=e;if(!f.value||a.loop)return null;const y=l.value;if(!y)return s("div",{style:"color: red; padding: 10px;"},`Component "${a.type}" not found`);let h={...u.buildAttrs(a,d,y,n.value,b,x)};if(a.show&&!o.value){const r=h.style;if(typeof r=="string"){const k={};r.split(";").forEach(P=>{const[j,C]=P.split(":").map(S=>S.trim());j&&C&&(k[j]=C)}),h.style={...k,display:"none"}}else h.style={...r||{},display:"none"}}const i=u.resolveChildren(a,d,n.value,x,v);let p=null;i&&typeof i=="object"&&!Array.isArray(i)?p=i:i!=null&&(typeof y=="string"?p=i:p={default:()=>i});const t=a,g=t.onMounted||t.onUnmounted||t.onUpdated||t.onBeforeMount||t.onBeforeUnmount||t.onBeforeUpdate,A=t.provide&&Object.keys(t.provide).length>0||t.inject&&(Array.isArray(t.inject)?t.inject.length>0:Object.keys(t.inject).length>0);let c;if((g||A)&&u.createComponentWithLifecycle)c=u.createComponentWithLifecycle(y,h,p,t,d);else try{c=s(y,h,p)}catch(r){return s("div",{style:"color: red; padding: 10px;"},`Failed to render "${a.type}": ${r}`)}if(t.ref&&u.attachRef&&(c=u.attachRef(c,t)),t.keepAlive){const r=typeof t.keepAlive=="object"?t.keepAlive:{};c=s(O,r,()=>c)}if(t.transition){const r=typeof t.transition=="string"?{name:t.transition}:{...t.transition};c=s(N,r,()=>c)}return c}}});function q(e,f,o,l,n={}){return s(U,{schema:e,ctx:f,path:o,renderer:l,modelPathStack:n.modelPathStack??[],nodeContext:n.nodeContext,parentMap:n.parentMap,depth:n.depth??0,key:n.key??o})}export{U as VarioNode,q as createVarioNodeVNode,L as shouldComponentize};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vario-node.js","sourceRoot":"","sources":["../../src/features/vario-node.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -21,4 +21,6 @@ export * from './types.js';
21
21
  export * from './features/refs.js';
22
22
  export * from './features/teleport.js';
23
23
  export * from './features/provide-inject.js';
24
+ export * from './features/schema-store.js';
25
+ export * from './features/vario-node.js';
24
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,0BAA0B,CAAA"}
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- export*from"./renderer.js";export*from"./composable.js";export*from"./bindings.js";export*from"./types.js";export*from"./features/refs.js";export*from"./features/teleport.js";export*from"./features/provide-inject.js";
1
+ export*from"./renderer.js";export*from"./composable.js";export*from"./bindings.js";export*from"./types.js";export*from"./features/refs.js";export*from"./features/teleport.js";export*from"./features/provide-inject.js";export*from"./features/schema-store.js";export*from"./features/vario-node.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,0BAA0B,CAAA"}
@@ -12,7 +12,13 @@
12
12
  import { type VNode, ComponentInternalInstance, type App } from 'vue';
13
13
  import type { SchemaNode } from '@variojs/schema';
14
14
  import type { RuntimeContext } from '@variojs/core';
15
+ import type { PathSegment } from '@variojs/core';
15
16
  import { RefsRegistry } from './features/refs.js';
17
+ import type { NodeContext } from './features/node-context.js';
18
+ import type { ParentMap } from './features/node-context.js';
19
+ import { type VarioNodeRenderer } from './features/vario-node.js';
20
+ import { type SchemaStore } from './features/schema-store.js';
21
+ import type { VueSchemaNode } from './types.js';
16
22
  /**
17
23
  * Model 绑定相关配置(供外部/扩展使用)
18
24
  */
@@ -36,17 +42,49 @@ export interface VueRendererOptions {
36
42
  modelOptions?: ModelOptions;
37
43
  /** 是否启用 path-memo 缓存(默认 true),设为 false 可做升级前基准对比 */
38
44
  usePathMemo?: boolean;
45
+ /** 是否对 loop 每项使用独立 Vue 组件(列表项组件化),默认 false;开启后仅该项 props 变化时 re-render */
46
+ loopItemAsComponent?: boolean;
47
+ /** 方案 C:子树组件化配置 */
48
+ subtreeComponent?: {
49
+ /** 是否启用子树组件化(默认 false) */
50
+ enabled?: boolean;
51
+ /** 组件化粒度:'all' 所有节点 | 'boundary' 仅组件边界 */
52
+ granularity?: 'all' | 'boundary';
53
+ /** 最大深度(超过后不再组件化) */
54
+ maxDepth?: number;
55
+ };
56
+ /** 方案 D:Schema 碎片化配置 */
57
+ schemaFragment?: {
58
+ /** 是否启用碎片化(默认 false) */
59
+ enabled?: boolean;
60
+ /** 碎片粒度:'node' 每个节点 | 'component' 仅组件边界 */
61
+ granularity?: 'node' | 'component';
62
+ };
39
63
  }
40
64
  /**
41
65
  * Vue 渲染器
42
66
  * 将 Vario Schema 转换为 Vue VNode
43
67
  */
44
- export declare class VueRenderer {
68
+ export declare class VueRenderer implements VarioNodeRenderer {
45
69
  refsRegistry: RefsRegistry;
46
70
  private getState?;
47
71
  /** path-memo:按 path 缓存子树 VNode,未变分支复用 */
48
72
  private pathMemoCache;
49
73
  private usePathMemo;
74
+ private loopItemAsComponent;
75
+ /** 方案 C:子树组件化配置 */
76
+ readonly subtreeComponentOptions: {
77
+ enabled: boolean;
78
+ granularity: 'all' | 'boundary';
79
+ maxDepth?: number;
80
+ };
81
+ /** 方案 D:Schema 碎片化配置 */
82
+ readonly schemaFragmentOptions: {
83
+ enabled: boolean;
84
+ granularity: 'node' | 'component';
85
+ };
86
+ /** 方案 D:Schema Store(用于精确失效) */
87
+ private schemaStore?;
50
88
  private pathResolver;
51
89
  private componentResolver;
52
90
  private expressionEvaluator;
@@ -63,8 +101,49 @@ export declare class VueRenderer {
63
101
  /**
64
102
  * 创建 VNode
65
103
  * @param path 节点在 schema 树中的路径(如 ""、"0"、"0.1"、"0.[2]"),供 path-memo 缓存
104
+ * @param depth 当前节点深度(从 0 开始),用于方案 C 子树组件化
66
105
  */
67
106
  private createVNode;
107
+ /**
108
+ * 解析组件类型
109
+ */
110
+ resolveComponent(type: string): any;
111
+ /**
112
+ * 求值表达式
113
+ */
114
+ evaluateExpr(expr: string, ctx: RuntimeContext): unknown;
115
+ /**
116
+ * 构建属性
117
+ */
118
+ buildAttrs(schema: SchemaNode, ctx: RuntimeContext, component: any, modelPathStack: PathSegment[], nodeContext?: NodeContext, parentMap?: ParentMap): Record<string, any>;
119
+ /**
120
+ * 解析子节点
121
+ */
122
+ resolveChildren(schema: SchemaNode, ctx: RuntimeContext, modelPathStack: PathSegment[], parentMap?: ParentMap, path?: string): any;
123
+ /**
124
+ * 处理生命周期包装
125
+ */
126
+ createComponentWithLifecycle(component: any, attrs: Record<string, any>, children: any, vueSchema: VueSchemaNode, ctx: RuntimeContext): VNode;
127
+ /**
128
+ * 附加 ref
129
+ */
130
+ attachRef(vnode: VNode, vueSchema: VueSchemaNode): VNode;
131
+ /**
132
+ * 获取更新后的 model 路径栈
133
+ */
134
+ getUpdatedModelPathStack(schema: SchemaNode, modelPathStack: PathSegment[], ctx: RuntimeContext): PathSegment[];
135
+ /**
136
+ * 获取 Schema Store(方案 D)
137
+ */
138
+ getSchemaStore(): SchemaStore | undefined;
139
+ /**
140
+ * 初始化 Schema Store(方案 D)
141
+ */
142
+ initSchemaStore(schema: SchemaNode): void;
143
+ /**
144
+ * 精确更新 Schema 节点(方案 D)
145
+ */
146
+ patchSchemaNode(path: string, patch: Partial<SchemaNode>): void;
68
147
  /**
69
148
  * 清除组件解析缓存
70
149
  * 用于组件注册变更后的缓存失效
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAK,KAAK,KAAK,EAAY,yBAAyB,EAAyB,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AACzG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEnD,OAAO,EAAa,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAqB5D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,mEAAmE;IACnE,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC3C,wCAAwC;IACxC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAA;IAChB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAChC,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAA;IACpB,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,oDAAoD;IACpD,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED;;;GAGG;AACH,qBAAa,WAAW;IACf,YAAY,EAAE,YAAY,CAAA;IACjC,OAAO,CAAC,QAAQ,CAAC,CAAW;IAC5B,yCAAyC;IACzC,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,gBAAgB,CAAkB;gBAE9B,OAAO,GAAE,kBAAuB;IAgD5C;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,GAAG,KAAK,GAAG,IAAI;IAW7D;;;OAGG;IACH,OAAO,CAAC,WAAW;IA2OnB;;;OAGG;IACI,mBAAmB,IAAI,IAAI;IAIlC;;;OAGG;IACI,kBAAkB,IAAI,IAAI;IAIjC;;OAEG;IACI,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAGpD"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
package/dist/renderer.js CHANGED
@@ -1 +1 @@
1
- import{h as p,Fragment as I,Transition as L,KeepAlive as k}from"vue";import{attachRef as B,RefsRegistry as K}from"./features/refs.js";import{createTeleport as W,shouldTeleport as $}from"./features/teleport.js";import{ModelPathResolver as O}from"./features/path-resolver.js";import{ComponentResolver as U}from"./features/component-resolver.js";import{ExpressionEvaluator as F}from"./features/expression-evaluator.js";import{EventHandler as T}from"./features/event-handler.js";import{AttrsBuilder as z}from"./features/attrs-builder.js";import{LoopHandler as D}from"./features/loop-handler.js";import{ChildrenResolver as _}from"./features/children-resolver.js";import{LifecycleWrapper as q}from"./features/lifecycle-wrapper.js";import{PathMemoCache as G,buildSchemaId as x,buildDepsKey as S,getCacheKey as j,hasLoopInSubtree as J}from"./features/path-memo.js";class ce{refsRegistry;getState;pathMemoCache;usePathMemo;pathResolver;componentResolver;expressionEvaluator;eventHandler;attrsBuilder;loopHandler;childrenResolver;lifecycleWrapper;constructor(e={}){this.getState=e.getState,this.refsRegistry=e.refsRegistry||new K;const l=e.components||e.app?._context?.components||e.instance?.appContext?.components||{};this.componentResolver=new U(l),this.expressionEvaluator=new F,this.eventHandler=new T((r,i)=>this.expressionEvaluator.evaluateExpr(r,i)),this.pathResolver=new O((r,i)=>this.expressionEvaluator.evaluateExpr(r,i)),this.attrsBuilder=new z(this.getState,this.pathResolver,this.eventHandler,e.modelOptions?.lazy),this.lifecycleWrapper=new q,this.pathMemoCache=new G,this.usePathMemo=e.usePathMemo!==!1;const a=(r,i,u,h,f,R)=>this.createVNode(r,i,u??[],h,f,R??h?.path??"");this.loopHandler=new D(this.pathResolver,a,(r,i)=>this.expressionEvaluator.evaluateExpr(r,i)),this.childrenResolver=new _(a,this.expressionEvaluator)}render(e,l){const a=new WeakMap,r=this.createVNode(e,l,[],void 0,a,"");return r??p(I,null,[])}createVNode(e,l,a=[],r,i,u=""){if(!e||typeof e!="object")return p("div",{style:"color: red; padding: 10px;"},"Invalid schema");if(!e.type)return p("div",{style:"color: red; padding: 10px;"},"Schema missing type property");if(i!=null)if(r==null)i.set(e,null);else{i.set(e,r.parent??null);const o=r.siblings??[],n=r.parent;n!=null&&o.forEach(d=>i.set(d,n))}let h=!0;if(e.cond)try{if(h=this.expressionEvaluator.evaluateExpr(e.cond,l),!h)return null}catch(o){const n=o instanceof Error?o.message:String(o);return p("div",{style:"color: red; padding: 10px; border: 1px solid red;"},`Condition evaluation error: ${n}`)}let f=!0;try{e.show&&(f=this.expressionEvaluator.evaluateExpr(e.show,l))}catch{f=!0}const R=u.includes("["),P=!J(e),b=this.usePathMemo&&!e.loop&&!R&&P;if(b){const o=x(e),n=S(h,f),d=j(u,o,n),g=this.pathMemoCache.get(d);if(g!==void 0)return g}if(e.loop)return this.loopHandler.createLoopVNode(e,l,a,i,u)||null;const y=this.componentResolver.resolveComponent(e.type);if(!y)return p("div",{style:"color: red; padding: 10px;"},`Component "${e.type}" not found`);const t=e;let E=[...a];const C=this.pathResolver.getScopePath(e.model);C&&(E=this.pathResolver.updateModelPathStack(C,a,l,e));let v=this.attrsBuilder.buildAttrs(e,l,y,a,(o,n)=>this.childrenResolver.evalProps(o,n),C?E:void 0,r,i),c=this.childrenResolver.resolveChildren(e,l,E,i,u);if(e.show)try{if(!!!f){const n=v.style;if(typeof n=="string"){const d={};n.split(";").forEach(g=>{const[M,A]=g.split(":").map(H=>H.trim());M&&A&&(d[M]=A)}),v.style={...d,display:"none"}}else v.style={...n||{},display:"none"}}}catch(o){const n=o instanceof Error?o.message:String(o);console.warn(`Show expression evaluation error: ${n}`,e),v.style={...v.style||{},display:"none"}}let w=v||{},m=null;c&&typeof c=="object"&&!Array.isArray(c)?m=c:c!=null&&(typeof y=="string"?m=c:m={default:()=>c});const V=t.onMounted||t.onUnmounted||t.onUpdated||t.onBeforeMount||t.onBeforeUnmount||t.onBeforeUpdate,N=t.provide&&Object.keys(t.provide).length>0||t.inject&&(Array.isArray(t.inject)?t.inject.length>0:Object.keys(t.inject).length>0);let s;if(V||N)s=this.lifecycleWrapper.createComponentWithLifecycle(y,w,m,t,l);else try{s=p(y,w,m)}catch(o){return p("div",{style:"color: red; padding: 10px;"},`Failed to render "${e.type}": ${o}`)}if(t.ref&&(s=B(s,t,this.refsRegistry)),t.keepAlive){const o=typeof t.keepAlive=="object"?t.keepAlive:{};s=p(k,o,()=>s)}if(t.transition){const o=typeof t.transition=="string"?{name:t.transition}:{...t.transition,duration:t.transition.duration&&typeof t.transition.duration=="object"?t.transition.duration.enter&&t.transition.duration.leave?{enter:t.transition.duration.enter,leave:t.transition.duration.leave}:void 0:t.transition.duration};s=p(L,o,()=>s)}if($(t.teleport)&&(s=W(t.teleport,s)),b){const o=x(e),n=S(h,f),d=j(u,o,n);this.pathMemoCache.set(d,s)}return s}clearComponentCache(){this.componentResolver.clearComponentCache()}clearPathMemoCache(){this.pathMemoCache.clear()}invalidateComponentCache(e){this.componentResolver.invalidateComponentCache(e)}}export{ce as VueRenderer};
1
+ import{h as u,Fragment as W,Transition as k,KeepAlive as B}from"vue";import{attachRef as P,RefsRegistry as H}from"./features/refs.js";import{createTeleport as K,shouldTeleport as U}from"./features/teleport.js";import{ModelPathResolver as $}from"./features/path-resolver.js";import{ComponentResolver as T}from"./features/component-resolver.js";import{ExpressionEvaluator as D}from"./features/expression-evaluator.js";import{EventHandler as z}from"./features/event-handler.js";import{AttrsBuilder as _}from"./features/attrs-builder.js";import{LoopHandler as q}from"./features/loop-handler.js";import{ChildrenResolver as G}from"./features/children-resolver.js";import{LifecycleWrapper as J}from"./features/lifecycle-wrapper.js";import{PathMemoCache as Q,buildSchemaId as x,buildDepsKey as I,getCacheKey as V,hasLoopInSubtree as X,hasModelInSubtree as Y}from"./features/path-memo.js";import{shouldComponentize as Z,createVarioNodeVNode as ee}from"./features/vario-node.js";import{createSchemaStore as te}from"./features/schema-store.js";class ge{refsRegistry;getState;pathMemoCache;usePathMemo;loopItemAsComponent;subtreeComponentOptions;schemaFragmentOptions;schemaStore;pathResolver;componentResolver;expressionEvaluator;eventHandler;attrsBuilder;loopHandler;childrenResolver;lifecycleWrapper;constructor(e={}){this.getState=e.getState,this.refsRegistry=e.refsRegistry||new H;const r=e.components||e.app?._context?.components||e.instance?.appContext?.components||{};this.componentResolver=new T(r),this.expressionEvaluator=new D,this.eventHandler=new z((o,s)=>this.expressionEvaluator.evaluateExpr(o,s)),this.pathResolver=new $((o,s)=>this.expressionEvaluator.evaluateExpr(o,s)),this.attrsBuilder=new _(this.getState,this.pathResolver,this.eventHandler,e.modelOptions?.lazy),this.lifecycleWrapper=new J,this.pathMemoCache=new Q,this.usePathMemo=e.usePathMemo!==!1,this.loopItemAsComponent=e.loopItemAsComponent===!0,this.subtreeComponentOptions={enabled:e.subtreeComponent?.enabled===!0,granularity:e.subtreeComponent?.granularity??"boundary",maxDepth:e.subtreeComponent?.maxDepth},this.schemaFragmentOptions={enabled:e.schemaFragment?.enabled===!0,granularity:e.schemaFragment?.granularity??"node"};const l=(o,s,h,p,d,v)=>this.createVNode(o,s,h??[],p,d,v??p?.path??""),i=o=>(s,h,p,d,v)=>this.createVNode(s,h,p,d,o,v);this.loopHandler=new q(this.pathResolver,l,(o,s)=>this.expressionEvaluator.evaluateExpr(o,s),this.loopItemAsComponent,i),this.childrenResolver=new G(l,this.expressionEvaluator)}render(e,r){const l=new WeakMap,i=this.createVNode(e,r,[],void 0,l,"");return i??u(W,null,[])}createVNode(e,r,l=[],i,o,s="",h=0){if(!e||typeof e!="object")return u("div",{style:"color: red; padding: 10px;"},"Invalid schema");if(!e.type)return u("div",{style:"color: red; padding: 10px;"},"Schema missing type property");if(o!=null)if(i==null)o.set(e,null);else{o.set(e,i.parent??null);const n=i.siblings??[],a=i.parent;a!=null&&n.forEach(m=>o.set(m,a))}let p=!0;if(e.cond)try{if(p=this.expressionEvaluator.evaluateExpr(e.cond,r),!p)return null}catch(n){const a=n instanceof Error?n.message:String(n);return u("div",{style:"color: red; padding: 10px; border: 1px solid red;"},`Condition evaluation error: ${a}`)}let d=!0;try{e.show&&(d=this.expressionEvaluator.evaluateExpr(e.show,r))}catch{d=!0}const v=s.includes("["),N=!X(e),j=!Y(e),E=this.usePathMemo&&!e.loop&&!v&&N&&j;if(E){const n=x(e),a=I(p,d),m=V(s,n,a),R=this.pathMemoCache.get(m);if(R!==void 0)return R}if(Z(e,h,this.subtreeComponentOptions))return ee(e,r,s,this,{modelPathStack:l,nodeContext:i,parentMap:o,depth:h,key:s||void 0});if(e.loop)return this.loopHandler.createLoopVNode(e,r,l,o,s)||null;const g=this.componentResolver.resolveComponent(e.type);if(!g)return u("div",{style:"color: red; padding: 10px;"},`Component "${e.type}" not found`);const t=e;let b=[...l];const S=this.pathResolver.getScopePath(e.model);S&&(b=this.pathResolver.updateModelPathStack(S,l,r,e));let y=this.attrsBuilder.buildAttrs(e,r,g,l,(n,a)=>this.childrenResolver.evalProps(n,a),S?b:void 0,i,o),f=this.childrenResolver.resolveChildren(e,r,b,o,s);if(e.show)try{if(!!!d){const a=y.style;if(typeof a=="string"){const m={};a.split(";").forEach(R=>{const[A,w]=R.split(":").map(F=>F.trim());A&&w&&(m[A]=w)}),y.style={...m,display:"none"}}else y.style={...a||{},display:"none"}}}catch(n){const a=n instanceof Error?n.message:String(n);console.warn(`Show expression evaluation error: ${a}`,e),y.style={...y.style||{},display:"none"}}let M=y||{},C=null;f&&typeof f=="object"&&!Array.isArray(f)?C=f:f!=null&&(typeof g=="string"?C=f:C={default:()=>f});const L=t.onMounted||t.onUnmounted||t.onUpdated||t.onBeforeMount||t.onBeforeUnmount||t.onBeforeUpdate,O=t.provide&&Object.keys(t.provide).length>0||t.inject&&(Array.isArray(t.inject)?t.inject.length>0:Object.keys(t.inject).length>0);let c;if(L||O)c=this.lifecycleWrapper.createComponentWithLifecycle(g,M,C,t,r);else try{c=u(g,M,C)}catch(n){return u("div",{style:"color: red; padding: 10px;"},`Failed to render "${e.type}": ${n}`)}if(t.ref&&(c=P(c,t,this.refsRegistry)),t.keepAlive){const n=typeof t.keepAlive=="object"?t.keepAlive:{};c=u(B,n,()=>c)}if(t.transition){const n=typeof t.transition=="string"?{name:t.transition}:{...t.transition,duration:t.transition.duration&&typeof t.transition.duration=="object"?t.transition.duration.enter&&t.transition.duration.leave?{enter:t.transition.duration.enter,leave:t.transition.duration.leave}:void 0:t.transition.duration};c=u(k,n,()=>c)}if(U(t.teleport)&&(c=K(t.teleport,c)),E){const n=x(e),a=I(p,d),m=V(s,n,a);this.pathMemoCache.set(m,c)}return c}resolveComponent(e){return this.componentResolver.resolveComponent(e)}evaluateExpr(e,r){return this.expressionEvaluator.evaluateExpr(e,r)}buildAttrs(e,r,l,i,o,s){const h=this.pathResolver.getScopePath(e.model);let p=i;return h&&(p=this.pathResolver.updateModelPathStack(h,i,r,e)),this.attrsBuilder.buildAttrs(e,r,l,i,(d,v)=>this.childrenResolver.evalProps(d,v),h?p:void 0,o,s)}resolveChildren(e,r,l,i,o){return this.childrenResolver.resolveChildren(e,r,l,i,o)}createComponentWithLifecycle(e,r,l,i,o){return this.lifecycleWrapper.createComponentWithLifecycle(e,r,l,i,o)}attachRef(e,r){return P(e,r,this.refsRegistry)}getUpdatedModelPathStack(e,r,l){const i=this.pathResolver.getScopePath(e.model);return i?this.pathResolver.updateModelPathStack(i,r,l,e):r}getSchemaStore(){return this.schemaStore}initSchemaStore(e){this.schemaFragmentOptions.enabled&&(this.schemaStore=te(),this.schemaStore.fromTree(e))}patchSchemaNode(e,r){this.schemaStore&&(this.schemaStore.patch(e,r),this.pathMemoCache.clear())}clearComponentCache(){this.componentResolver.clearComponentCache()}clearPathMemoCache(){this.pathMemoCache.clear()}invalidateComponentCache(e){this.componentResolver.invalidateComponentCache(e)}}export{ge as VueRenderer};
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@variojs/vue",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Vario Vue Renderer - Vue 3 integration for Vario Schema rendering",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -36,8 +36,8 @@
36
36
  "access": "public"
37
37
  },
38
38
  "peerDependencies": {
39
- "@variojs/core": "^0.3.0",
40
- "@variojs/schema": "^0.3.0",
39
+ "@variojs/core": "^0.4.0",
40
+ "@variojs/schema": "^0.4.0",
41
41
  "vue": "^3.4.0"
42
42
  },
43
43
  "peerDependenciesMeta": {