fix(state): 修复组件 $. 属性在初始化时丢失响应式绑定的 Bug(by AI)

This commit is contained in:
AI Engineer 2026-07-06 08:02:02 +08:00
parent 1e46c8a76e
commit eb0145ea85
5 changed files with 410 additions and 405 deletions

View File

@ -1,5 +1,11 @@
# CHANGELOG # CHANGELOG
## v1.0.23 (2026-07-06)
### 修复
- **组件 `$.` 属性响应式绑定修复**:
- 注释了组件属性初始化时的 `node.removeAttribute(attr.name)`,以防止 `$.` 开头的组件属性在第一次赋完初值后被从 DOM 上永久删除,从而使其能够滑入后置的指令收集队列进行 `_initBinding` 注册,建立了完整的 Proxy 驱动链。
## v1.0.22 (2026-07-04) ## v1.0.22 (2026-07-04)
### 核心增强与样式合并优化 ### 核心增强与样式合并优化

1
dist/state.js vendored
View File

@ -501,7 +501,6 @@
if (prop[i]) o = o[_a2 = prop[i]] ?? (o[_a2] = {}); if (prop[i]) o = o[_a2 = prop[i]] ?? (o[_a2] = {});
} }
o[prop[prop.length - 1]] = result; o[prop[prop.length - 1]] = result;
node.removeAttribute(attr.name);
} }
}); });
_makeComponent(node.tagName, node, scanObj); _makeComponent(node.tagName, node, scanObj);

2
dist/state.min.js vendored

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
{ {
"name": "@apigo.cc/state", "name": "@apigo.cc/state",
"version": "1.0.22", "version": "1.0.23",
"type": "module", "type": "module",
"main": "dist/state.js", "main": "dist/state.js",
"module": "dist/state.js", "module": "dist/state.js",

View File

@ -322,7 +322,7 @@ export function _parseNode(node, scanObj) {
const prop = realAttrName.split('.'); const prop = realAttrName.split('.');
for (let i = 0; i < prop.length - 1; i++) { if (prop[i]) o = (o[prop[i]] ??= {}); } for (let i = 0; i < prop.length - 1; i++) { if (prop[i]) o = (o[prop[i]] ??= {}); }
o[prop[prop.length - 1]] = result; o[prop[prop.length - 1]] = result;
node.removeAttribute(attr.name); // node.removeAttribute(attr.name);
} }
}); });
_makeComponent(node.tagName, node, scanObj); _makeComponent(node.tagName, node, scanObj);