Skip to content

Commit 0653628

Browse files
committed
feat: 0.0.35 remove some grammar sugar & bugfix
1 parent f6fab91 commit 0653628

File tree

9 files changed

+58
-32
lines changed

9 files changed

+58
-32
lines changed

.eslintignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ scripts/dev/*.js
33
*.html
44
**/libs/*.js
55
dist
6-
cdn
6+
cdn
7+
*.min.js

packages/client-core/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"version": "0.0.34",
44
"description": "All-in-js Web UI Framework, No jsx/template/vdom/css/html",
55
"main": "src/index.ts",
6-
"typings": "dist/alins.d.ts",
6+
"typings": "src/index.ts",
77
"repository": "git@github.com:alinsjs/alins.git",
88
"author": "tackchen <theajack@qq.com>",
99
"scripts": {

packages/client-reactive/src/proxy.ts

+12-12
Original file line numberDiff line numberDiff line change
@@ -17,28 +17,28 @@ import { getCurCleaner } from './cleaner';
1717
let currentFn: any = null;
1818
let depReactive = false; // 当前表达式是否依赖响应数据
1919

20+
function execDepFn (fn: ()=>any, curFn: IProxyListener) {
21+
currentFn = curFn;
22+
depReactive = false;
23+
const v = fn();
24+
currentFn = null;
25+
return v;
26+
}
27+
2028
export function isDepReactive () {
2129
return depReactive;
2230
}
2331

24-
export function observe (fn: ()=>any, listener: IProxyListener) {
32+
export function observe (fn: () => any, listener: IProxyListener) {
2533
// if (__DEBUG__) console.log('Start observe', fn, listener);
2634
if (!listener) listener = fn;
2735
const origin = listener;
28-
listener = (...args) => {
36+
listener = () => {
2937
// ! 动态收集依赖
3038
// ! fix computed 遇到 && || 时首次运行可能observe不到后面一个响应式数据的问题
31-
currentFn = listener;
32-
depReactive = false;
33-
const result = origin(...args);
34-
currentFn = null;
35-
return result;
39+
return execDepFn(fn, origin);
3640
};
37-
currentFn = listener;
38-
depReactive = false;
39-
const v = fn();
40-
currentFn = null;
41-
return v;
41+
return execDepFn(fn, listener);
4242
}
4343

4444
export function isRef (data: any): boolean {

packages/compiler-core/src/parse-utils.ts

+4
Original file line numberDiff line numberDiff line change
@@ -516,6 +516,10 @@ function createNewJSXAttribute (node: JSXAttribute, handleReactive?: boolean) {
516516
const key = node.name;
517517
if (key.type === 'JSXNamespacedName') {
518518
const name = key.namespace.name;
519+
if (name === '$') {
520+
// ! $:App => $mount='#App'
521+
return createJsxAttr('$mount', t.stringLiteral(`#${key.name.name}`));
522+
}
519523
const deco = key.name.name;
520524
// ! 处理 onclick:stop
521525
if (isEventEmptyDeco(name, deco, node.value)) {

packages/compiler-web/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"version": "0.0.34",
44
"description": "All-in-js Web UI Framework, No jsx/template/vdom/css/html",
55
"main": "src/index.ts",
6-
"typings": "dist/alins-compiler-web.d.ts",
6+
"typings": "src/index.ts",
77
"repository": "git@github.com:alinsjs/alins.git",
88
"author": "tackchen <theajack@qq.com>",
99
"scripts": {

packages/compiler-web/src/babel.min.js

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
// ! 模改babel-standalone 目的是为了去掉babel内部自动执行 text/babel 的逻辑
12
export default (function(){
23
'use strict';
34
var exports = {};

scripts/dev/samples/playground.jsx

+19-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,28 @@
1+
2+
// let a = 1; // @reactive
3+
// let b = false; // @reactive
4+
5+
// <div $mount='#App'
6+
// style:color={`${(a > 3 && !b) ? '#f44': '#4f4'}`}
7+
// >
8+
// Hello!
9+
// </div>
10+
11+
// a ++;
12+
// a ++;
13+
// a ++;
14+
// b = true;
15+
// // a = true;
16+
// // b = true;
17+
// // 预期绿色
18+
119
let count = 1;
220
const countAdd2 = count + 2;
321
const countAdd3 = countAdd2 + 1;
422
function countMultiply2 () {
523
return count * 2;
624
}
7-
<div $mount='#App'>
25+
<div $:App>
826
<button onclick={count++}>
927
click:{count}
1028
</button>

scripts/helper/version.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@
4040
去除过度的语法糖
4141

4242
- [x] 去除 $$body 简写
43-
- [ ] 去除 $$ID = $mount='#ID' 的简写
44-
- [ ] 去除变量命名控制响应式数据 保留注释和js label
45-
- [ ] 去除
43+
- [x] 去除 $$ID = $mount='#ID' 的简写
44+
- [x] 去除变量命名控制响应式数据 保留注释和js label
45+
- [x] $$ID => $:ID 简写
4646

4747
## 0.0.33 - 0.0.34
4848

scripts/test/demos.tsx

+15-13
Original file line numberDiff line numberDiff line change
@@ -607,16 +607,18 @@ function lifeLabel () {
607607
}}/>;
608608
}
609609

610-
611-
{/* <div $$App
612-
style:color={`${(a && !b) ? '#f44': '#4f4'}`}
613-
>
614-
Hello!
615-
</div> */}
616-
617-
/**
618-
* todo 有bug
619-
a.v = true;
620-
b.v = true;
621-
b.v = false
622-
*/
610+
function doubleAnd(){
611+
612+
let a = false; // @reactive
613+
let b = false; // @reactive
614+
615+
<div $mount='#App'
616+
style:color={`${(a && !b) ? '#f44': '#4f4'}`}
617+
>
618+
Hello!
619+
</div>
620+
621+
a = true;
622+
b = true;
623+
// 预期绿色
624+
}

0 commit comments

Comments
 (0)