release: v1.0.15 By: AICoder
This commit is contained in:
parent
a777f315b4
commit
f1397a4776
@ -1,5 +1,10 @@
|
||||
# CHANGELOG
|
||||
|
||||
## v1.0.15 (2026-06-05)
|
||||
|
||||
### 修复
|
||||
- **挂载节点绑定失效**: 修复了在离线/内存中提早调用 `_scanTree` 时子节点被打上 `_stScanned` 标记,导致节点被真正挂载(`isConnected`)时因 `_stScanned` 为真而被 MutationObserver 跳过,从而使其上的表达式绑定未被计算的 Bug。现在只有当节点真正 connected 时才记录 `_stScanned = true`。
|
||||
|
||||
## v1.0.14 (2026-06-05)
|
||||
|
||||
### 修复
|
||||
|
||||
3
dist/state.js
vendored
3
dist/state.js
vendored
@ -477,7 +477,7 @@
|
||||
return;
|
||||
}
|
||||
if (node.nodeType !== 1) return;
|
||||
node._stScanned = true;
|
||||
if (node.isConnected) node._stScanned = true;
|
||||
if (!node._stTranslated) {
|
||||
Array.from(node.attributes).forEach((attr) => {
|
||||
if (!attr.name.startsWith("$") && !attr.name.startsWith("st-") && !attr.name.startsWith(".")) {
|
||||
@ -697,7 +697,6 @@
|
||||
mutations.forEach((mutation) => {
|
||||
mutation.addedNodes.forEach((newNode) => {
|
||||
if (newNode.isConnected && newNode.nodeType === 1 && !newNode._stScanned) {
|
||||
newNode._stScanned = true;
|
||||
_scanTree(newNode);
|
||||
}
|
||||
});
|
||||
|
||||
2
dist/state.min.js
vendored
2
dist/state.min.js
vendored
File diff suppressed because one or more lines are too long
2
dist/state.min.mjs
vendored
2
dist/state.min.mjs
vendored
File diff suppressed because one or more lines are too long
3
dist/state.mjs
vendored
3
dist/state.mjs
vendored
@ -473,7 +473,7 @@ const _scanTree = (node, scanObj = {}) => {
|
||||
return;
|
||||
}
|
||||
if (node.nodeType !== 1) return;
|
||||
node._stScanned = true;
|
||||
if (node.isConnected) node._stScanned = true;
|
||||
if (!node._stTranslated) {
|
||||
Array.from(node.attributes).forEach((attr) => {
|
||||
if (!attr.name.startsWith("$") && !attr.name.startsWith("st-") && !attr.name.startsWith(".")) {
|
||||
@ -693,7 +693,6 @@ if (typeof document !== "undefined") {
|
||||
mutations.forEach((mutation) => {
|
||||
mutation.addedNodes.forEach((newNode) => {
|
||||
if (newNode.isConnected && newNode.nodeType === 1 && !newNode._stScanned) {
|
||||
newNode._stScanned = true;
|
||||
_scanTree(newNode);
|
||||
}
|
||||
});
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@apigo.cc/state",
|
||||
"version": "1.0.14",
|
||||
"version": "1.0.15",
|
||||
"type": "module",
|
||||
"main": "dist/state.js",
|
||||
"module": "dist/state.js",
|
||||
|
||||
@ -308,7 +308,7 @@ export const _scanTree = (node, scanObj = {}) => {
|
||||
node._stTranslated = true; return;
|
||||
}
|
||||
if (node.nodeType !== 1) return;
|
||||
node._stScanned = true;
|
||||
if (node.isConnected) node._stScanned = true;
|
||||
|
||||
if (!node._stTranslated) {
|
||||
Array.from(node.attributes).forEach(attr => {
|
||||
|
||||
@ -29,7 +29,6 @@ if (typeof document !== 'undefined') {
|
||||
mutations.forEach(mutation => {
|
||||
mutation.addedNodes.forEach(newNode => {
|
||||
if (newNode.isConnected && newNode.nodeType === 1 && !newNode._stScanned) {
|
||||
newNode._stScanned = true;
|
||||
_scanTree(newNode);
|
||||
}
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user