aoye 0.0.1 → 0.0.2

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
@@ -1,84 +1,48 @@
1
1
  # aoye
2
- 一个前端模板语法编译器
2
+ 一个高效的 signal 库
3
3
 
4
- ## 我们构建了一种新的模板语法
4
+ 嗷耶(^-^)V
5
+
6
+ ## Usage
5
7
 
6
8
  ```typescript
7
- const template = `
8
- node1 k1=1
9
- node1_1 k2=2 k3=3
10
- node1_1_1 k6=6
11
- node2
12
- | p1=1
13
- | p2=2 p3=3
14
- node2_1
15
- | p4=4 p5=5 p6=6
16
- node2_2
17
- | p7=7
18
- node3 v1=1 v2=2 v3=3
19
- `
20
- const compiler = new Compiler(template)
21
- let Ast = cmp.program();
9
+ import { $, watch } form 'aoye';
10
+ // 创建一个信号
11
+ const s1 = $(1);
12
+
13
+ // 取值
14
+ const a = s1.v;
15
+ //
16
+ const b = s1();
17
+
18
+ // 设值
19
+ s1.v = 2;
20
+ //
21
+ s1(2);
22
+
23
+ // 计算
24
+ const c = $(() => s1.v * 2);
25
+
26
+ // effect 自动监听 (无返回值的计算)
27
+ $(() => {
28
+ console.log('c有变化', c.v);
29
+ })();
30
+
31
+ // 仅当 c 变化时,监听器执行
32
+ watch([c], () => {
33
+ console.log('s1的值是', s1.v);
34
+ });
22
35
 
23
- console.log(Ast)
36
+ // scope 用于批量控制信号
37
+ const dispose = scope(() => {
38
+ const a = $(1);
39
+
40
+ watch([a], () => {
41
+ console.log('s1的值是', s1.v);
42
+ });
43
+ })
24
44
 
25
- // 输出结果如下
26
- Ast = [
27
- {
28
- "name": "node1",
29
- "props": {
30
- "k1": "1"
31
- },
32
- "children": [
33
- {
34
- "name": "node1_1",
35
- "props": {
36
- "k2": "2",
37
- "k3": "3"
38
- },
39
- "children": [
40
- {
41
- "name": "node1_1_1",
42
- "props": {
43
- "k6": "6"
44
- }
45
- }
46
- ]
47
- }
48
- ]
49
- },
50
- {
51
- "name": "node2",
52
- "props": {
53
- "p1": "1",
54
- "p2": "2",
55
- "p3": "3"
56
- },
57
- "children": [
58
- {
59
- "name": "node2_1",
60
- "props": {
61
- "p4": "4",
62
- "p5": "5",
63
- "p6": "6"
64
- }
65
- },
66
- {
67
- "name": "node2_2",
68
- "props": {
69
- "p7": "7"
70
- }
71
- }
72
- ]
73
- },
74
- {
75
- "name": "node3",
76
- "props": {
77
- "v1": "1",
78
- "v2": "2",
79
- "v3": "3"
80
- }
81
- }
82
- ]
45
+ // scope 内的信号不再生效
46
+ dispose();
83
47
  ```
84
48