annil 1.5.9 → 1.5.11

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.
Files changed (74) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +1 -1
  3. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/computedUpdater.d.ts +6 -0
  4. package/dist/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/computedUpdater.js +3 -3
  5. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/computedUpdater.js.map +1 -0
  6. package/dist/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/data-tracer.d.ts +1 -1
  7. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/data-tracer.js.map +1 -0
  8. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/getPathsValue.js.map +1 -0
  9. package/dist/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/getPropertiesValue.d.ts +1 -1
  10. package/dist/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/getPropertiesValue.js +1 -1
  11. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/getPropertiesValue.js.map +1 -0
  12. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/index.d.ts +2 -0
  13. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/index.js +50 -0
  14. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/index.js.map +1 -0
  15. package/dist/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/initComputed.d.ts +8 -5
  16. package/dist/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/initComputed.js +1 -1
  17. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/initComputed.js.map +1 -0
  18. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/isEqual.js.map +1 -0
  19. package/dist/api/DefineComponent/assignOptions/index.d.ts +48 -0
  20. package/dist/api/DefineComponent/{collectOptionsForComponent.js → assignOptions/index.js} +34 -23
  21. package/dist/api/DefineComponent/assignOptions/index.js.map +1 -0
  22. package/dist/api/DefineComponent/assignOptions/initStore/index.d.ts +2 -0
  23. package/dist/api/DefineComponent/assignOptions/initStore/index.js +12 -0
  24. package/dist/api/DefineComponent/assignOptions/initStore/index.js.map +1 -0
  25. package/dist/api/DefineComponent/index.d.ts +1 -1
  26. package/dist/api/DefineComponent/index.js +2 -2
  27. package/dist/api/DefineComponent/index.js.map +1 -1
  28. package/dist/api/RootComponent/Lifetimes/LifetimesConstraint.d.ts +1 -1
  29. package/dist/api/RootComponent/Observers/ObserversOption.d.ts +1 -1
  30. package/dist/behaviors/BStore.js +2 -14
  31. package/dist/behaviors/BStore.js.map +1 -1
  32. package/dist/utils/deepClone.js.map +1 -1
  33. package/package.json +1 -1
  34. package/src/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/computedUpdater.ts +6 -5
  35. package/src/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/data-tracer.ts +1 -1
  36. package/src/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/getPropertiesValue.ts +3 -5
  37. package/src/api/DefineComponent/assignOptions/computedWatchHandle/index.ts +79 -0
  38. package/src/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/initComputed.ts +13 -8
  39. package/src/api/DefineComponent/{collectOptionsForComponent.ts → assignOptions/index.ts} +104 -59
  40. package/src/api/DefineComponent/assignOptions/initStore/index.ts +16 -0
  41. package/src/api/DefineComponent/index.ts +3 -6
  42. package/src/api/RootComponent/Lifetimes/LifetimesConstraint.ts +1 -1
  43. package/src/api/RootComponent/Observers/ObserversOption.ts +2 -2
  44. package/src/behaviors/BStore.ts +5 -22
  45. package/src/behaviors/BbeforeCreated.ts +1 -1
  46. package/src/utils/deepClone.ts +1 -2
  47. package/dist/api/DefineComponent/collectOptionsForComponent.d.ts +0 -31
  48. package/dist/api/DefineComponent/collectOptionsForComponent.js.map +0 -1
  49. package/dist/behaviors/BComputedAndWatch/computedUpdater.d.ts +0 -2
  50. package/dist/behaviors/BComputedAndWatch/computedUpdater.js.map +0 -1
  51. package/dist/behaviors/BComputedAndWatch/data-tracer.js.map +0 -1
  52. package/dist/behaviors/BComputedAndWatch/getPathsValue.js.map +0 -1
  53. package/dist/behaviors/BComputedAndWatch/getPropertiesValue.js.map +0 -1
  54. package/dist/behaviors/BComputedAndWatch/index.d.ts +0 -1
  55. package/dist/behaviors/BComputedAndWatch/index.js +0 -85
  56. package/dist/behaviors/BComputedAndWatch/index.js.map +0 -1
  57. package/dist/behaviors/BComputedAndWatch/initComputed.js.map +0 -1
  58. package/dist/behaviors/BComputedAndWatch/isEqual.js.map +0 -1
  59. package/dist/behaviors/BComputedAndWatch/types.d.ts +0 -24
  60. package/dist/behaviors/BComputedAndWatch/types.js +0 -2
  61. package/dist/behaviors/BComputedAndWatch/types.js.map +0 -1
  62. package/dist/utils/deleteProtoField.d.ts +0 -1
  63. package/dist/utils/deleteProtoField.js +0 -4
  64. package/dist/utils/deleteProtoField.js.map +0 -1
  65. package/src/behaviors/BComputedAndWatch/index.ts +0 -135
  66. package/src/behaviors/BComputedAndWatch/types.ts +0 -30
  67. package/src/utils/deleteProtoField.ts +0 -6
  68. /package/dist/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/data-tracer.js +0 -0
  69. /package/dist/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/getPathsValue.d.ts +0 -0
  70. /package/dist/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/getPathsValue.js +0 -0
  71. /package/dist/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/isEqual.d.ts +0 -0
  72. /package/dist/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/isEqual.js +0 -0
  73. /package/src/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/getPathsValue.ts +0 -0
  74. /package/src/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/isEqual.ts +0 -0
@@ -0,0 +1,79 @@
1
+ import type { Func } from "hry-types/src/Misc/Func";
2
+ import { computedUpdater } from "./computedUpdater";
3
+ import { getPathsValue } from "./getPathsValue";
4
+ import { getPropertiesValue } from "./getPropertiesValue";
5
+ import { initComputed } from "./initComputed";
6
+ import { isEqual } from "./isEqual";
7
+
8
+ import { deepClone } from "../../../../utils/deepClone";
9
+ import { isEmptyObject } from "../../../../utils/isEmptyObject";
10
+ import type { FinalOptionsOfComponent, Instance } from "..";
11
+
12
+ type WatchOldValue = Record<string, unknown[]>;
13
+
14
+ function initWatchOldValue(data: FinalOptionsOfComponent["data"], watchConfig: object): WatchOldValue {
15
+ const watchOldValue = {};
16
+ for (const key in watchConfig) {
17
+ // watchOldValue[key] = deepClone(getPathsValue(data, key));
18
+
19
+ // watchOldValue[key] = getPathsValue(data, key);
20
+
21
+ // @ts-ignore 隐式索引
22
+ watchOldValue[key] = deepClone(getPathsValue(data, key));
23
+ }
24
+
25
+ return watchOldValue;
26
+ }
27
+ export function computedWatchHandle(options: FinalOptionsOfComponent) {
28
+ // 计算属性初始化
29
+ const computedConfig = options.computed;
30
+ const rawPropertiesValue = getPropertiesValue(options.properties);
31
+ if (computedConfig && !isEmptyObject(computedConfig)) {
32
+ // 此时store已经初始化数据到data了
33
+
34
+ const __computedInitCache__ = initComputed(options, computedConfig, { ...options.data, ...rawPropertiesValue });
35
+
36
+ options.data.__computedCache__ = __computedInitCache__;
37
+
38
+ options.methods.__computedUpdater__ = computedUpdater;
39
+ // // 把计算属性缓存从方法中带入到实例中,在created周期加入实例后删除
40
+ // methodOpt.__computedInitCache__ = () => computedCache;
41
+ }
42
+ const observersConfig = options.observers;
43
+ // 通过observers加入`**`字段来触发计算属性更新
44
+ const originalFunc = observersConfig["**"] as Func | undefined;
45
+
46
+ observersConfig["**"] = function(this: Instance): undefined {
47
+ this.__computedUpdater__?.();
48
+
49
+ originalFunc && originalFunc.call(this);
50
+ };
51
+
52
+ // watch handle
53
+ const watchConfig = options.watch;
54
+
55
+ if (watchConfig && !isEmptyObject(watchConfig)) {
56
+ const data = options.data;
57
+
58
+ data.__watchOldValue__ = initWatchOldValue({ ...data, ...rawPropertiesValue }, watchConfig);
59
+
60
+ const observersConfig = options.observers;
61
+ for (const key in watchConfig) {
62
+ const watchHadle = watchConfig[key];
63
+ const originObserversHandle = observersConfig[key] as Func | undefined;
64
+
65
+ // 在监控多个数据时,参数是多个值
66
+ observersConfig[key] = function(this: Instance, ...newValue: unknown[]) {
67
+ originObserversHandle && originObserversHandle.call(this, ...newValue);
68
+
69
+ const watchOldValue = this.data.__watchOldValue__!;
70
+ const oldValue = watchOldValue[key];
71
+
72
+ if (isEqual(newValue, oldValue)) return;
73
+ watchOldValue[key] = deepClone(newValue);
74
+
75
+ watchHadle.call(this, ...newValue, ...oldValue);
76
+ };
77
+ }
78
+ }
79
+ }
@@ -1,11 +1,16 @@
1
- // import type { ComponentInstance } from "../../api/RootComponent/Instance/RootComponentInstance";
2
- // import type { IsDependOnOthers } from "./data-tracer";
3
-
4
1
  import type { Func } from "hry-types/src/Misc/Func";
5
- import type { FinalOptionsOfComponent } from "../../api/DefineComponent/collectOptionsForComponent";
2
+ import type { FinalOptionsOfComponent } from "..";
3
+
4
+ import type { ComputedDependence } from "./computedUpdater";
6
5
  import { deepProxy, unwrap } from "./data-tracer";
7
- import type { ComputedCache, ItemCache } from "./types";
8
- export type ComputedDependence = { paths: string[]; val: unknown };
6
+
7
+ type ItemCache = {
8
+ dependences: ComputedDependence[];
9
+ method: Func;
10
+ value: unknown;
11
+ };
12
+
13
+ export type ComputedCache = Record<string, ItemCache>;
9
14
 
10
15
  /**
11
16
  * 如果依赖列表某项的首个字段值为undefined并且字段为其他计算属性字段 返回false(即被依赖的计算字段写在了依赖他的计算字段后面), 否则返回ComputedInfo。
@@ -97,6 +102,7 @@ export function initComputed(
97
102
  computedCache: ComputedCache = {},
98
103
  ): ComputedCache {
99
104
  // 收集依赖 uninitedkeys不受内部2处重新赋值的影响
105
+
100
106
  for (const key of uninitedkeys) {
101
107
  // uninitedkeys 受2处重新赋值的影响
102
108
  const itemCache = getItemCache(initAllData, uninitedkeys, computedConfig[key]);
@@ -108,8 +114,7 @@ export function initComputed(
108
114
  // 把当前依赖不正确的key放到后面去
109
115
  uninitedkeys.push(key);
110
116
  } else {
111
- /* istanbul ignore next */
112
- const dataOpt = options.data ||= {};
117
+ const dataOpt = options.data;
113
118
 
114
119
  dataOpt[key] = itemCache.value;
115
120
 
@@ -1,47 +1,74 @@
1
1
  import type { Func } from "hry-types/src/Misc/_api";
2
- import { BBeforeCreate } from "../../behaviors/BbeforeCreated";
3
- import { BComputedAndWatch } from "../../behaviors/BComputedAndWatch";
4
- import type { ComputedCache, Instance } from "../../behaviors/BComputedAndWatch/types";
5
- import { BStore } from "../../behaviors/BStore";
6
- import type { Assign } from "../../types/Assign";
7
- import type { WMComponent } from "../../types/OfficialTypeAlias";
8
- import { deepClone } from "../../utils/deepClone";
9
- import { INNERMARKER } from "../../utils/InnerMarker";
10
- import { isEmptyObject } from "../../utils/isEmptyObject";
11
- import { instanceConfig } from "../InstanceInject/instanceConfig";
12
- import type { RootComponentTrueOptions } from "../RootComponent";
13
- import type { ComputedConstraint } from "../RootComponent/Computed/ComputedConstraint";
2
+ import { BBeforeCreate } from "../../../behaviors/BbeforeCreated";
3
+
4
+ import type { Assign } from "../../../types/Assign";
5
+ import type { WMComponent } from "../../../types/OfficialTypeAlias";
6
+ import { deepClone } from "../../../utils/deepClone";
7
+ import { INNERMARKER } from "../../../utils/InnerMarker";
8
+ import { isEmptyObject } from "../../../utils/isEmptyObject";
9
+ import { instanceConfig } from "../../InstanceInject/instanceConfig";
10
+ import type { RootComponentTrueOptions } from "../../RootComponent";
11
+ import type { ComputedConstraint } from "../../RootComponent/Computed/ComputedConstraint";
14
12
  import type {
15
13
  CustomEventConstraint,
16
14
  CustomEvents,
17
15
  FullCustomEvents,
18
- } from "../RootComponent/CustomEvents/CustomEventConstraint";
19
- import type { DataConstraint } from "../RootComponent/Data/DataConstraint";
20
- import type { EventsConstraint } from "../RootComponent/Events/EventsConstraint";
21
- import type { PageInstance } from "../RootComponent/Instance/RootComponentInstance";
22
- import type { LifetimesConstraint } from "../RootComponent/Lifetimes/LifetimesConstraint";
23
- import type { MethodsConstraint } from "../RootComponent/Methods/MethodsConstraint";
24
- import type { PageLifetimesOption } from "../RootComponent/PageLifetimes/PageLifetimesOption";
25
- import type { PropertiesConstraint } from "../RootComponent/Properties/PropertiesConstraint";
26
- import type { StoreConstraint } from "../RootComponent/Store/StoreConstraint";
27
- import type { SubComponentTrueOptions } from "../SubComponent";
28
- import type { DefineComponentOption } from ".";
16
+ } from "../../RootComponent/CustomEvents/CustomEventConstraint";
17
+ import type { DataConstraint } from "../../RootComponent/Data/DataConstraint";
18
+ import type { EventsConstraint } from "../../RootComponent/Events/EventsConstraint";
19
+ import type { ComponentInstance, PageInstance } from "../../RootComponent/Instance/RootComponentInstance";
20
+ import type { LifetimesConstraint } from "../../RootComponent/Lifetimes/LifetimesConstraint";
21
+ import type { MethodsConstraint } from "../../RootComponent/Methods/MethodsConstraint";
22
+ import type { PageLifetimesOption } from "../../RootComponent/PageLifetimes/PageLifetimesOption";
23
+ import type { PropertiesConstraint } from "../../RootComponent/Properties/PropertiesConstraint";
24
+ import type { StoreConstraint } from "../../RootComponent/Store/StoreConstraint";
25
+ import type { SubComponentTrueOptions } from "../../SubComponent";
26
+ import type { DefineComponentOption } from "..";
27
+
28
+ import { BStore } from "../../../behaviors/BStore";
29
+ import { computedWatchHandle } from "./computedWatchHandle";
30
+
31
+ import type { ComputedCache } from "./computedWatchHandle/initComputed";
32
+ import { initStore } from "./initStore";
33
+
34
+ type InstanceInnerFields = {
35
+ data: OptionsInnerFields["data"];
36
+ disposer: Record<string, Func>;
37
+ } & OptionsInnerFields["methods"];
38
+
39
+ export type Instance =
40
+ & (ComponentInstance | PageInstance)
41
+ & InstanceInnerFields;
42
+
29
43
  /**
30
44
  * 临时的函数配置项
31
45
  * 把根组件与子组件中配置类型为函数的相同字段配置收集在一起(数组)
32
46
  */
33
- export type FuncOptions = Record<"pageLifetimes" | "lifetimes" | "watch", Record<string, Func[]>>;
47
+ export type FuncOptions = Record<"pageLifetimes" | "lifetimes" | "watch" | "observers", Record<string, Func[]>>;
48
+
49
+ export type WatchOldValue = Record<string, unknown[]>;
50
+
51
+ export type OptionsInnerFields = {
52
+ data: {
53
+ __computedCache__?: ComputedCache;
54
+ __storeConfig__?: StoreConstraint;
55
+ __watchOldValue__?: WatchOldValue;
56
+ };
57
+ methods: {
58
+ disposer?: Record<string, Func>;
59
+ // computedHandle加入
60
+ __computedUpdater__?: Func;
61
+ };
62
+ };
34
63
 
35
64
  /**
36
65
  * 最终传入原生Component的配置项
37
66
  */
38
67
  export type FinalOptionsOfComponent = {
39
- data: DataConstraint;
68
+ data: DataConstraint & OptionsInnerFields["data"];
40
69
  observers: Record<string, Func>;
41
70
  behaviors: string[];
42
- methods: MethodsConstraint & {
43
- __computedInitCache__?: () => ComputedCache;
44
- };
71
+ methods: MethodsConstraint & OptionsInnerFields["methods"];
45
72
  externalClasses: string[];
46
73
  pageLifetimes: PageLifetimesOption<false, object>["pageLifetimes"] & {};
47
74
  isPage?: boolean;
@@ -81,7 +108,7 @@ export function isPageCheck(isPage: boolean | undefined) {
81
108
  * 1. 使用wx.navigateTo传值的。这种情况无内置字段 option[INNERMARKER.url] 等于 undefined
82
109
  * 2. 使用插件提供的navigateTo传值。这种情况 INNERMARKER.url被load周期劫持函数解码后赋值INNERMARKER.url字段为本身,即option[INNERMARKER.url] 等于 INNERMARKER.url
83
110
  */
84
- /* istanbul ignore next: miniprogram-simulate(当前版本 1.6.1) 无法测试页面生命周期 */
111
+ /* istanbul ignore next miniprogram-simulate(当前版本 1.6.1) 无法测试页面生命周期 */
85
112
  function onLoadReceivedDataHandle(
86
113
  this: PageInstance,
87
114
  option: Record<typeof INNERMARKER.url, string>,
@@ -107,7 +134,7 @@ function onLoadReceivedDataHandle(
107
134
  * 针对通过 navigateTo传过来的数据对组件load周期传入数据解析
108
135
  * @param option - option中的url是拼接了encodeURIComponent转码的data对象的,key为INNERMARKER.url
109
136
  */
110
- /* istanbul ignore next: miniprogram-simulate(当前版本 1.6.1) 无法测试load */
137
+ /* istanbul ignore next miniprogram-simulate(当前版本 1.6.1) 无法测试load */
111
138
  function loadReceivedDataHandle(
112
139
  this: PageInstance,
113
140
  option: Record<typeof INNERMARKER.url, string>,
@@ -173,7 +200,7 @@ function _funcOptionsHandle(config: object, configList: Record<string, Func[]>)
173
200
  /**
174
201
  * 把函数列表配置放入一个配置中循环一次运行
175
202
  */
176
- function funcOptionsHandle(
203
+ function assignFuncOptions(
177
204
  finalOptionsForComponent: FinalOptionsOfComponent,
178
205
  isPage: boolean | undefined,
179
206
  funcOptions: FuncOptions,
@@ -198,14 +225,13 @@ function funcFieldsCollect(
198
225
  options: SubComponentTrueOptions | RootComponentTrueOptions,
199
226
  funcOptions: FuncOptions,
200
227
  ) {
201
- for (const key in funcOptions) {
202
- // key = "pageLifetimes" | "lifetimes" | "watch"
203
- // @ts-ignore 隐式索引
204
- if (options[key]) {
205
- // @ts-ignore 隐式索引
206
- for (const _key in options[key]) {
207
- // @ts-ignore 隐式索引
208
- (funcOptions[key][_key] ||= []).push(options[key][_key]);
228
+ let key: keyof FuncOptions;
229
+ for (key in funcOptions) {
230
+ const optionsKeyConfig = options[key];
231
+ if (optionsKeyConfig) {
232
+ for (const _key in optionsKeyConfig) {
233
+ // @ts-ignore
234
+ (funcOptions[key][_key] ||= []).push(optionsKeyConfig[_key]);
209
235
  }
210
236
  }
211
237
  }
@@ -241,7 +267,7 @@ function otherFieldsHandle(
241
267
  function eventsHandle(methods: FinalOptionsOfComponent["methods"], eventsConfig: EventsConstraint) {
242
268
  Object.assign(methods, eventsConfig);
243
269
  }
244
- function subComponentsHandle(
270
+ function assignSubComponentsOption(
245
271
  componentOptions: FinalOptionsOfComponent,
246
272
  subComponents: SubComponentTrueOptions[],
247
273
  funcOptions: FuncOptions,
@@ -289,7 +315,7 @@ function customEventsHandle(
289
315
  * @param funcOptions - 收集特殊配置对象字段
290
316
  * @param rootComponentOptions - 被收集的源配置对象
291
317
  */
292
- function collectRootComponentOption(
318
+ function assignRootComponentOption(
293
319
  finalOptions: FinalOptionsOfComponent,
294
320
  funcOptions: FuncOptions,
295
321
  rootComponentOptions: RootComponentTrueOptions,
@@ -347,20 +373,23 @@ function merge<Target extends object, Source extends object>(target: Target, sou
347
373
  * @param subComponentsList -
348
374
  * @returns FinalOptionsForComponent
349
375
  */
350
- export function collectOptionsForComponent(
376
+ export function assignOptions(
351
377
  defineComponentOption: DefineComponentOption,
352
378
  ): FinalOptionsOfComponent {
353
379
  const rootComponentOption = defineComponentOption.rootComponent;
354
- const subComponentsList = defineComponentOption.subComponents;
355
-
356
- const finalOptionsForComponent: FinalOptionsOfComponent = merge({ ...deepClone(instanceConfig.injectInfo) }, {
357
- observers: {},
358
- data: {},
359
- methods: {},
360
- behaviors: [BStore, BComputedAndWatch],
361
- externalClasses: [],
362
- pageLifetimes: {},
363
- });
380
+ const subComponentsOption = defineComponentOption.subComponents;
381
+ // 注入injectInfo和给默认配置(便于后续判断)
382
+ const finalOptionsForComponent: FinalOptionsOfComponent = merge(
383
+ { ...deepClone(instanceConfig.injectInfo) },
384
+ {
385
+ observers: {},
386
+ data: {},
387
+ methods: {},
388
+ behaviors: [BStore],
389
+ externalClasses: [],
390
+ pageLifetimes: {},
391
+ },
392
+ );
364
393
 
365
394
  /**
366
395
  * 有些字段配置同时存在根组件和子组件当中(如pageLifetimes,lifetimes,watch字段), 且key相同值类型为函数。funcConfig对象用于收集这些配置为数组形式,最终再一起整合进finalOptionsForComponent配置中。即funcConfig是一个临时中介对象。
@@ -369,20 +398,29 @@ export function collectOptionsForComponent(
369
398
  pageLifetimes: {},
370
399
  lifetimes: {},
371
400
  watch: {},
401
+ observers: {},
372
402
  };
373
403
 
374
404
  if (rootComponentOption && !isEmptyObject(rootComponentOption)) {
375
- collectRootComponentOption(finalOptionsForComponent, funcOptions, rootComponentOption);
405
+ // 把rootComponentOption配置并入finalOptionsForComponent,其中FuncOptions字段配置收集到funcOptions
406
+ assignRootComponentOption(finalOptionsForComponent, funcOptions, rootComponentOption);
376
407
  }
377
408
 
378
- if (subComponentsList && !isEmptyObject(subComponentsList)) {
379
- subComponentsHandle(finalOptionsForComponent, subComponentsList, funcOptions);
409
+ if (subComponentsOption && !isEmptyObject(subComponentsOption)) {
410
+ // subComponentsList配置并入finalOptionsForComponent,其中FuncOptions字段配置收集到funcOptions
411
+ assignSubComponentsOption(finalOptionsForComponent, subComponentsOption, funcOptions);
380
412
  }
413
+ // 把收集好的funcOptions并入finalOptionsForComponent
414
+ assignFuncOptions(finalOptionsForComponent, rootComponentOption?.isPage, funcOptions);
381
415
 
382
- funcOptionsHandle(finalOptionsForComponent, rootComponentOption?.isPage, funcOptions);
383
-
384
- InternalFieldProtection(finalOptionsForComponent.methods, ["disposer"]);
416
+ // 配置与内部字段冲突验证
417
+ InternalFieldProtection(finalOptionsForComponent.methods, ["disposer", "__computedUpdater__"]);
385
418
 
419
+ InternalFieldProtection(finalOptionsForComponent.data, [
420
+ "__computedCache__",
421
+ "__storeConfig__",
422
+ "__watchOldValue__",
423
+ ]);
386
424
  // 对页面传入参数进行处理 老框架劫持页面methods.onLoad,新框架劫持页面pageLifetimes.load
387
425
 
388
426
  finalOptionsForComponent.isPage
@@ -394,16 +432,23 @@ export function collectOptionsForComponent(
394
432
  [onLoadReceivedDataHandle],
395
433
  );
396
434
 
435
+ // 验证isPage字段是否配置正确
397
436
  hijack(
398
437
  finalOptionsForComponent.lifetimes!,
399
438
  "attached",
400
439
  [isPageCheck(rootComponentOption?.isPage)],
401
440
  );
402
441
 
442
+ // 页面时删除预设的虚拟组件字段
403
443
  finalOptionsForComponent.isPage
404
- // 页面时删除预设的虚拟组件字段
405
444
  && finalOptionsForComponent.options && Reflect.deleteProperty(finalOptionsForComponent.options, "virtualHost");
406
445
 
446
+ // 初始化store数据到data并把store配置放入到data的__storeConfig__下
447
+ initStore(finalOptionsForComponent);
448
+
449
+ // 处理computed和watch配置
450
+ computedWatchHandle(finalOptionsForComponent);
451
+
407
452
  // BBeforeCreate在最后面,让BeforeCreate生命周期运行在最终建立组件时。
408
453
  finalOptionsForComponent.behaviors!.push(BBeforeCreate);
409
454
 
@@ -0,0 +1,16 @@
1
+ import type mobx from "mobx";
2
+ import type { FinalOptionsOfComponent } from "..";
3
+ export function initStore(finalOptionsForComponent: FinalOptionsOfComponent) {
4
+ const storeConfig = finalOptionsForComponent.store;
5
+ if (storeConfig) {
6
+ const { toJS } = require("mobx") as typeof mobx;
7
+ for (const key in storeConfig) {
8
+ finalOptionsForComponent.data[key] = toJS(storeConfig[key]());
9
+
10
+ // 把响应式数据配置保留在methods的__storeConfig__字段下带入到组件实例中(不用函数返回方式也可以,但不符合methods字段类型),后续再从原型上删除。
11
+ }
12
+ finalOptionsForComponent.data.__storeConfig__ = storeConfig;
13
+
14
+ delete finalOptionsForComponent.store;
15
+ }
16
+ }
@@ -9,9 +9,8 @@ import type { RootComponentOption } from "./RootComponent/RootComponentOption";
9
9
  import type { SubComponentsOption } from "./SubComponents/SubComponentsOption";
10
10
 
11
11
  import type { RootComponentTrueOptions } from "../RootComponent";
12
- import { collectOptionsForComponent } from "./collectOptionsForComponent";
13
-
14
- type Path = `/${string}`;
12
+ import { assignOptions } from "./assignOptions";
13
+ export type Path = `/${string}`;
15
14
 
16
15
  type RootOptions<
17
16
  TRootComponentDoc extends RootComponentDoc,
@@ -53,9 +52,7 @@ export type DefineComponentOption = {
53
52
  * 把根组件选项和子组件选项转化为原生Component API选项并执行
54
53
  */
55
54
  export const DefineComponent: DefineComponentConstructor = function(options): any {
56
- // console.log("---------------------------");
57
-
58
55
  Component(
59
- collectOptionsForComponent(options as DefineComponentOption) as any,
56
+ assignOptions(options as DefineComponentOption) as any,
60
57
  );
61
58
  };
@@ -1,6 +1,6 @@
1
1
  import type { ComputeIntersection } from "hry-types/src/Object/ComputeIntersection";
2
2
  import type { WMCompLifetimes } from "../../../types/OfficialTypeAlias";
3
- import type { FinalOptionsOfComponent } from "../../DefineComponent/collectOptionsForComponent";
3
+ import type { FinalOptionsOfComponent } from "../../DefineComponent/assignOptions";
4
4
 
5
5
  export type LifetimesConstraint = // 官方组件生命周期
6
6
  ComputeIntersection<
@@ -45,8 +45,8 @@ export type ObserversOption<TWatchData extends object, _WatchKeys extends keyof
45
45
  // 不加NoInfer会导致只监控计算字段时错误
46
46
  NoInfer<
47
47
  & {
48
- [k in _WatchKeys]?: (
49
- newValue: ReadonlyDeep<TWatchData[k]>,
48
+ [k in _WatchKeys | "**"]?: (
49
+ newValue: k extends keyof TWatchData ? ReadonlyDeep<TWatchData[k]> : unknown,
50
50
  ) => void;
51
51
  }
52
52
  // 解决单独书写计算书写字段的报错(或许是:ts字面量约束检测提前计算属性key引起的错误提示)
@@ -1,29 +1,11 @@
1
1
  import type mobx from "mobx";
2
-
3
- import type { FinalOptionsOfComponent } from "../api/DefineComponent/collectOptionsForComponent";
4
- import { deleteProtoField } from "../utils/deleteProtoField";
5
- import type { Instance } from "./BComputedAndWatch/types";
2
+ import type { Instance } from "../api/DefineComponent/assignOptions";
6
3
 
7
4
  export const BStore = Behavior({
8
- // @ts-ignore
9
- definitionFilter(options: FinalOptionsOfComponent) {
10
- // 初始化store
11
- const storeConfig = options.store;
12
- if (!storeConfig) return;
13
- const { toJS } = require("mobx") as typeof mobx;
14
- for (const key in storeConfig) {
15
- options.data[key] = toJS(storeConfig[key]());
16
-
17
- // 把响应式数据配置保留在methods的__storeConfig__字段下带入到组件实例中(不用函数返回方式也可以,但不符合methods字段类型),后续再从原型上删除。
18
- options.methods.__storeConfig__ = () => storeConfig;
19
- }
20
- },
21
5
  lifetimes: {
22
6
  created(this: Instance) {
23
- // 取出通过addStoreConfigToMethods函数带入的storeConfig
24
- const storeConfig = this.__storeConfig__?.();
7
+ const storeConfig = this.data.__storeConfig__;
25
8
  if (!storeConfig) return;
26
- deleteProtoField(this, "__storeConfig__");
27
9
 
28
10
  const { comparer, reaction, toJS } = require("mobx") as typeof mobx;
29
11
 
@@ -44,10 +26,11 @@ export const BStore = Behavior({
44
26
  },
45
27
  );
46
28
  }
29
+ delete this.data.__storeConfig__;
47
30
  },
48
- /* istanbul ignore next */
31
+
49
32
  detached(this: Instance) {
50
- // 清除store数据 test中模拟了测试,所以忽略 框架(1.6.1)不支持 issue {@link https://github.com/wechat-miniprogram/miniprogram-simulate/issues/110}
33
+ /* istanbul ignore next 清除store数据 test中模拟了测试,所以忽略 框架(1.6.1)不支持 issue {@link https://github.com/wechat-miniprogram/miniprogram-simulate/issues/110}*/
51
34
  for (const key in this.disposer) {
52
35
  this.disposer[key]();
53
36
  }
@@ -1,4 +1,4 @@
1
- import type { FinalOptionsOfComponent } from "../api/DefineComponent/collectOptionsForComponent";
1
+ import type { FinalOptionsOfComponent } from "../api/DefineComponent/assignOptions";
2
2
 
3
3
  export const BBeforeCreate = Behavior({
4
4
  // @ts-ignore
@@ -5,12 +5,11 @@ export function deepClone<T>(value: T): T {
5
5
  if (typeof value !== "object" || value === null || value instanceof RegExp) {
6
6
  return value;
7
7
  }
8
- /* istanbul ignore next */
8
+
9
9
  const clone = (Array.isArray(value) ? [] : {}) as T;
10
10
 
11
11
  Object.setPrototypeOf(clone, Object.getPrototypeOf(value));
12
12
 
13
- /* istanbul ignore next */
14
13
  for (const key in value) {
15
14
  if (Object.prototype.hasOwnProperty.call(value, key)) {
16
15
  clone[key] = deepClone(value[key]);
@@ -1,31 +0,0 @@
1
- import type { Func } from "hry-types/src/Misc/_api";
2
- import type { ComputedCache, Instance } from "../../behaviors/BComputedAndWatch/types";
3
- import type { WMComponent } from "../../types/OfficialTypeAlias";
4
- import type { ComputedConstraint } from "../RootComponent/Computed/ComputedConstraint";
5
- import type { DataConstraint } from "../RootComponent/Data/DataConstraint";
6
- import type { LifetimesConstraint } from "../RootComponent/Lifetimes/LifetimesConstraint";
7
- import type { MethodsConstraint } from "../RootComponent/Methods/MethodsConstraint";
8
- import type { PageLifetimesOption } from "../RootComponent/PageLifetimes/PageLifetimesOption";
9
- import type { PropertiesConstraint } from "../RootComponent/Properties/PropertiesConstraint";
10
- import type { StoreConstraint } from "../RootComponent/Store/StoreConstraint";
11
- import type { DefineComponentOption } from ".";
12
- export type FuncOptions = Record<"pageLifetimes" | "lifetimes" | "watch", Record<string, Func[]>>;
13
- export type FinalOptionsOfComponent = {
14
- data: DataConstraint;
15
- observers: Record<string, Func>;
16
- behaviors: string[];
17
- methods: MethodsConstraint & {
18
- __computedInitCache__?: () => ComputedCache;
19
- };
20
- externalClasses: string[];
21
- pageLifetimes: PageLifetimesOption<false, object>["pageLifetimes"] & {};
22
- isPage?: boolean;
23
- options?: WMComponent.Options;
24
- properties?: PropertiesConstraint;
25
- store?: StoreConstraint;
26
- computed?: ComputedConstraint;
27
- watch?: Record<string, Func>;
28
- lifetimes?: LifetimesConstraint;
29
- };
30
- export declare function isPageCheck(isPage: boolean | undefined): (this: Instance) => void;
31
- export declare function collectOptionsForComponent(defineComponentOption: DefineComponentOption): FinalOptionsOfComponent;
@@ -1 +0,0 @@
1
- {"version":3,"file":"collectOptionsForComponent.js","sourceRoot":"","sources":["../../../src/api/DefineComponent/collectOptionsForComponent.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import type { Instance } from "./types";
2
- export declare function computedUpdater(this: Instance, isUpdated?: boolean): boolean;
@@ -1 +0,0 @@
1
- {"version":3,"file":"computedUpdater.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/computedUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,MAAM,UAAU,eAAe,CAAiB,SAAS,GAAG,KAAK;IAC/D,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YAExC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAGhE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,OAAO,GAAG,IAAI,CAAC;gBAEf,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,cAAc,GAAyB,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;YAGvF,IAAI,CAAC,OAAO,CAAC;gBACX,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;aACxB,CAAC,CAAC;YAEH,SAAS,GAAG,IAAI,CAAC;YAGjB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,cAAc,CAAC;YAGzD,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-tracer.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/data-tracer.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CACvB,IAAY,EACZ,WAAiC,EACjC,WAAqB,EAAE;IAEvB,MAAM,OAAO,GAAG;QACd,GAAG,CAAC,MAAc,EAAE,IAAY;YAI9B,IAAI,IAAI,KAAK,eAAe;gBAAE,OAAO,MAAM,CAAC;YAE5C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAKzB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAE1B,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAE5D,IAAI,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;oBAE7D,WAAW,CAAC,GAAG,EAAE,CAAC;gBACpB,CAAC;YACH,CAAC;YACD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAItC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAGvD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;gBAErF,OAAO,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC5D,CAAC;YAED,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;gBAAE,OAAO,GAAG,CAAC;YAExD,OAAO,SAAS,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;QAED,GAAG,CAAC,OAAe,EAAE,IAAY;YAC/B,MAAM,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC;QAC/B,CAAC;KACF,CAAC;IAEF,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,OAAY;IAEjC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACpD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAC5C,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,GAAG,aAAa,CAAC;IAC1B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getPathsValue.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/getPathsValue.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,KAAa;IACvD,MAAM,SAAS,GAAc,EAAE,CAAC;IAGhC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAE9B,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAEzB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,IAAI,EAAE,EAAE;YAEtD,IAAI,CAAC;gBACH,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getPropertiesValue.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/getPropertiesValue.ts"],"names":[],"mappings":"AAUA,SAAS,sBAAsB,CAC7B,QAAwB;IAExB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,MAAM;YACT,OAAO,EAAE,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,CAAC,CAAC;QACX,KAAK,KAAK;YACR,OAAO,EAAE,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,IAAI,CAAC;QACd,KAAK,OAAO;YACV,OAAO,KAAK,CAAC;QACf;YAEE,MAAM,KAAK,CACT,8DAA8D,CAC/D,CAAC;IACN,CAAC;AACH,CAAC;AACD,SAAS,gBAAgB,CAAC,MAAuB;IAC/C,OAAO,MAAM,YAAY,QAAQ,CAAC;AACpC,CAAC;AACD,SAAS,eAAe,CAAC,MAAuB;IAC9C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC;AACD,MAAM,UAAU,kBAAkB,CAAC,aAA+C;IAChF,IAAI,aAAa,KAAK,SAAS;QAAE,OAAO;IACxC,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAE7B,MAAM,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;aAAM,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;YAEnC,MAAM,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YAEN,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +0,0 @@
1
- export declare const BComputedAndWatch: string;