@lytjs/reactivity 5.0.1 → 6.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.
Files changed (56) hide show
  1. package/README.md +327 -202
  2. package/dist/async.cjs +276 -0
  3. package/dist/async.cjs.map +1 -0
  4. package/dist/async.d.cts +32 -0
  5. package/dist/async.d.ts +32 -0
  6. package/dist/async.mjs +273 -0
  7. package/dist/async.mjs.map +1 -0
  8. package/dist/index.cjs +1679 -1
  9. package/dist/index.cjs.map +1 -0
  10. package/dist/index.d.cts +226 -0
  11. package/dist/index.d.ts +226 -0
  12. package/dist/index.mjs +1612 -1
  13. package/dist/index.mjs.map +1 -0
  14. package/dist/ref-CwOCKoy2.d.cts +42 -0
  15. package/dist/ref-CwOCKoy2.d.ts +42 -0
  16. package/dist/scope-BC3djHz7.d.cts +345 -0
  17. package/dist/scope-CTxSo201.d.ts +345 -0
  18. package/dist/scope.cjs +74 -0
  19. package/dist/scope.cjs.map +1 -0
  20. package/dist/scope.d.cts +2 -0
  21. package/dist/scope.d.ts +2 -0
  22. package/dist/scope.mjs +70 -0
  23. package/dist/scope.mjs.map +1 -0
  24. package/dist/signal-DWrUYmvd.d.cts +109 -0
  25. package/dist/signal-DWrUYmvd.d.ts +109 -0
  26. package/dist/signal-component.cjs +39 -0
  27. package/dist/signal-component.cjs.map +1 -0
  28. package/dist/signal-component.d.cts +31 -0
  29. package/dist/signal-component.d.ts +31 -0
  30. package/dist/signal-component.mjs +35 -0
  31. package/dist/signal-component.mjs.map +1 -0
  32. package/dist/signal.cjs +350 -1
  33. package/dist/signal.cjs.map +1 -0
  34. package/dist/signal.d.cts +1 -0
  35. package/dist/signal.d.ts +1 -0
  36. package/dist/signal.mjs +334 -1
  37. package/dist/signal.mjs.map +1 -0
  38. package/package.json +54 -31
  39. package/dist/types/computed.d.ts +0 -70
  40. package/dist/types/computed.d.ts.map +0 -1
  41. package/dist/types/effect.d.ts +0 -157
  42. package/dist/types/effect.d.ts.map +0 -1
  43. package/dist/types/index.d.ts +0 -21
  44. package/dist/types/index.d.ts.map +0 -1
  45. package/dist/types/reactive.d.ts +0 -98
  46. package/dist/types/reactive.d.ts.map +0 -1
  47. package/dist/types/ref.d.ts +0 -128
  48. package/dist/types/ref.d.ts.map +0 -1
  49. package/dist/types/scheduler.d.ts +0 -44
  50. package/dist/types/scheduler.d.ts.map +0 -1
  51. package/dist/types/signal-component.d.ts +0 -45
  52. package/dist/types/signal-component.d.ts.map +0 -1
  53. package/dist/types/signal.d.ts +0 -87
  54. package/dist/types/signal.d.ts.map +0 -1
  55. package/dist/types/watch.d.ts +0 -125
  56. package/dist/types/watch.d.ts.map +0 -1
@@ -1,125 +0,0 @@
1
- /**
2
- * Lyt.js 响应式系统 — 侦听器(Watch)
3
- *
4
- * watch 和 watchEffect 用于观察响应式数据的变化并执行副作用。
5
- *
6
- * watch:
7
- * - 显式指定侦听源(ref/reactive/getter/数组)
8
- * - 回调接收新值和旧值
9
- * - 默认懒执行(不会立即执行回调)
10
- *
11
- * watchEffect:
12
- * - 自动收集依赖(不需要显式指定源)
13
- * - 立即执行一次
14
- * - 回调不接收参数
15
- *
16
- * nextTick:
17
- * - 在下一个微任务中执行回调
18
- * - 等待 DOM 更新后执行
19
- */
20
- import { Ref } from './ref';
21
- import { nextTick as schedulerNextTick } from '@lytjs/common';
22
- /** watch 回调函数类型 */
23
- export type WatchCallback<T = any, O = T> = (newValue: T, oldValue: O, onCleanup: (cleanupFn: () => void) => void) => void;
24
- /** watch 源类型:可以是 ref、reactive 对象、getter 函数或它们的数组 */
25
- export type WatchSource<T = any> = Ref<T> | (() => T) | {
26
- [key: string]: any;
27
- };
28
- /** watch 选项 */
29
- export interface WatchOptions {
30
- /** 是否立即执行回调(默认 false) */
31
- immediate?: boolean;
32
- /** 是否深度侦听(默认 true,对 reactive 对象自动开启) */
33
- deep?: boolean;
34
- /** 是否在组件卸载时自动停止(预留) */
35
- flush?: 'pre' | 'post' | 'sync';
36
- }
37
- /** watchEffect 选项 */
38
- export interface WatchEffectOptions {
39
- /** 副作用执行前的回调 */
40
- onTrack?: (event: any) => void;
41
- /** 副作用触发时的回调 */
42
- onTrigger?: (event: any) => void;
43
- /** 刷新时机 */
44
- flush?: 'pre' | 'post' | 'sync';
45
- }
46
- /** watch 停止句柄 */
47
- export type WatchStopHandle = () => void;
48
- /**
49
- * 侦听一个或多个响应式数据源,并在数据变化时执行回调
50
- *
51
- * @param source - 侦听源(ref / reactive / getter / 数组)
52
- * @param cb - 变化时的回调函数,接收 (newValue, oldValue, onCleanup)
53
- * @param options - 配置选项
54
- * @returns 停止侦听的函数
55
- *
56
- * @example
57
- * ```ts
58
- * // 侦听 ref
59
- * const count = ref(0)
60
- * const stop = watch(count, (newVal, oldVal) => {
61
- * console.log(`count: ${oldVal} -> ${newVal}`)
62
- * })
63
- * count.value++ // 输出: count: 0 -> 1
64
- * stop() // 停止侦听
65
- *
66
- * // 侦听 getter
67
- * watch(
68
- * () => state.count + state.name,
69
- * (newVal, oldVal) => console.log(newVal, oldVal)
70
- * )
71
- *
72
- * // 侦听多个源
73
- * watch([count, name], ([newCount, newName], [oldCount, oldName]) => {
74
- * console.log(newCount, newName)
75
- * })
76
- *
77
- * // 立即执行
78
- * watch(count, (val) => console.log(val), { immediate: true })
79
- * ```
80
- */
81
- export declare function watch<T = any>(source: WatchSource<T> | WatchSource<T>[], cb: WatchCallback<T>, options?: WatchOptions): WatchStopHandle;
82
- /**
83
- * 立即运行一个函数,同时响应式地追踪其依赖
84
- * 当依赖变化时自动重新执行
85
- *
86
- * @param fn - 要执行的副作用函数
87
- * @param options - 配置选项
88
- * @returns 停止侦听的函数
89
- *
90
- * @example
91
- * ```ts
92
- * const count = ref(0)
93
- * const stop = watchEffect(() => {
94
- * console.log(`count is: ${count.value}`)
95
- * })
96
- * // 立即输出: count is: 0
97
- * count.value++ // 输出: count is: 1
98
- * stop() // 停止侦听
99
- *
100
- * // 带清理函数
101
- * watchEffect((onCleanup) => {
102
- * const timer = setInterval(() => console.log('tick'), 1000)
103
- * onCleanup(() => clearInterval(timer)) // 依赖变化时清理
104
- * })
105
- * ```
106
- */
107
- export declare function watchEffect(fn: (onCleanup: (cleanupFn: () => void) => void) => void, options?: WatchEffectOptions): WatchStopHandle;
108
- /**
109
- * 在下一个微任务中执行回调
110
- * 等待当前所有响应式更新完成后再执行
111
- *
112
- * @returns Promise
113
- *
114
- * @example
115
- * ```ts
116
- * await nextTick()
117
- * // 此时 DOM 已更新完毕
118
- *
119
- * nextTick().then(() => {
120
- * console.log('更新完成')
121
- * })
122
- * ```
123
- */
124
- export { schedulerNextTick as nextTick };
125
- //# sourceMappingURL=watch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/watch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAOH,OAAO,EAAS,GAAG,EAAS,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAY,QAAQ,IAAI,iBAAiB,EAAY,MAAM,eAAe,CAAC;AAIlF,mBAAmB;AACnB,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAC1C,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,IAAI,KAAK,IAAI,KACvC,IAAI,CAAC;AAEV,oDAAoD;AACpD,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,GAAG,IAC3B,GAAG,CAAC,CAAC,CAAC,GACN,CAAC,MAAM,CAAC,CAAC,GACT;IACE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AAEN,eAAe;AACf,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wCAAwC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uBAAuB;IACvB,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;CACjC;AAED,qBAAqB;AACrB,MAAM,WAAW,kBAAkB;IACjC,gBAAgB;IAChB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,gBAAgB;IAChB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,WAAW;IACX,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;CACjC;AAED,iBAAiB;AACjB,MAAM,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC;AAuEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,KAAK,CAAC,CAAC,GAAG,GAAG,EAC3B,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EACzC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE,YAAiB,GACzB,eAAe,CAqFjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,WAAW,CACzB,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,EACxD,OAAO,GAAE,kBAAuB,GAC/B,eAAe,CAuCjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,iBAAiB,IAAI,QAAQ,EAAE,CAAC"}