state/CHANGELOG.md

5.7 KiB
Raw Permalink Blame History

CHANGELOG

v1.0.10 (2026-05-18)

修复

  • 生命周期: 修复了 onunload 监听器因字符串匹配错误导致的失效问题。
  • 插槽合并: 修复了 _mergeNode 在处理 TEMPLATE 节点时未正确指向 .content 的问题。
  • 架构对齐: 恢复了 _parseNode 的原始执行顺序,确保组件初始化与属性绑定时序的绝对安全性。

v1.0.9 (2026-05-18)

修复

  • 事件监听: 修复了 dom.jsonunload 钩子由于字符串匹配错误导致失效的问题(由 onunload 修正为 unload)。
  • 解耦逻辑: 移除了 index.js 中硬编码的 Bootstrap 主题自动切换逻辑,回归通用的状态管理库定位。

优化

  • 渲染性能: 进一步微调了 $each 循环更新时的指令扫描路径,避免了在已有绑定节点上不必要的父级作用域向上查找。
  • 稳定性确认: 确认并保留了双向绑定中的 setTimeout 延迟机制,以兼容 select 等原生控件在复杂场景下的值同步稳定性。

v1.0.8 (2026-05-18)

重大修复与回归

  • 架构还原: 忠实还原了开发者亲自编写的核心逻辑,移除了所有过度设计的复杂处理。
  • 时序优化: 微调了组件属性解析时机,确保 $.prop 赋值发生在组件 setupFunc 运行前,且正确指向父级作用域。
  • 合并修复: 解决了组件模板内部自带的 $class$style 指令不执行的问题,确保多源属性和谐共存。
  • 文档规范: 在 README 中增加了针对 AI 代理的“核心逻辑修改禁令”,确保未来维护的稳定性。

v1.0.7 (2026-05-18)

修复

  • 深度属性合并: 解决了当组件实例上同时存在静态 class 和动态 $class 时,动态绑定可能覆盖实例或模板原有静态类的问题。
  • 基准属性系统: 引入 _baseClass_baseStyle 累加机制。所有来源的静态属性(实例处、组件模板根节点)都会被捕获为“基准值”,动态绑定将在基准值之上进行增量更新。

v1.0.6 (2026-05-18)

修复

  • 初始化时序: 修正了组件实例指令在 setupFunc 执行前完成初次评估的问题。现在在组件初始化(含 setupFunc)完成后会立即触发指令重绘,确保 $class 等指令能正确响应在 setupFunc 中设置的属性。
  • 合并鲁棒性: 优化了 class 的处理流,确保实例静态类、模板静态类以及实例动态类能够按照正确的优先级合并,互不干扰。

v1.0.5 (2026-05-18)

修复

  • 属性合并: 改进 src/component.js 中的 _mergeNode 逻辑,支持组件模板与实例之间的 classstyle 属性合并,而非简单覆盖。
  • 动态绑定增强: 优化 src/dom.js 中的 $class$style 绑定逻辑。现在动态类支持自动切换切换时移除旧类动态样式支持与静态样式Base Style智能合并。

v1.0.4 (2026-05-18)

修复

  • 表达式评估: 改进 src/core.js 中的 _returnCode 逻辑,支持多语句表达式(如 $.target="console.log(1); thisNode.parentNode")。现在会自动将最后一条语句作为返回值,避免因 return 关键字前置导致多语句执行异常。

v1.0.3 (2026-05-18)

修复

  • 组件初始化优先级: 优化 src/dom.js 中的 _parseNode 逻辑,确保组件容器上的指令(如 $.target)在 setupFunc 执行前完成评估与赋值。
  • 作用域解析: 将 this.this.parent. 的自动替换逻辑前移至 _parseNode,解决了组件属性绑定在初始化时的作用域歧义问题。

测试

  • 新增 test/priority.test.js,验证组件属性优先级及跨作用域属性解析的正确性。

v1.0.2 (2026-05-17)

优化

  • 稳定性: src/dom.js 中的 bind 属性逻辑改为使用 setTimeout 确保 DOM 更新完成后同步值,提高双向绑定在高频操作下的可靠性。
  • 健壮性: src/observer.jsNewState 增加对已观察对象的检查,防止重复包装导致的性能损耗。
  • 功能: src/dom.js_translator 支持 {key} 模板替换,增强国际化组件的灵活性。
  • 清理: 全面规范代码缩进Tab移除 src/core.js 中的调试注释。

v1.0.1 (2026-05-15)

优化

  • 性能: 重构 _unbindTree 清理逻辑,将时间复杂度从 O(N \cdot K \cdot B) 降至 $O(N \cdot B)$。1000 项更新性能提升约 60%。
  • 稳定性: 引入 MAX_UPDATE_DEPTH (100) 递归保护机制,防止双向绑定循环导致爆栈。
  • 内存: 优化绑定追踪机制,通过 binding._sets 实现更精确的依赖清理。

测试

  • 引入 Benchmark 自动化校验,确保后续修改不会引入性能回退(>20% 容差)。
  • 增加 $each 对极端数据null/undefined/非 Iterable的鲁棒性测试。

文档

  • 完善 TEST.md 性能基准数据。
  • 校准全案版本号一致性。

v1.0.0 (2026-05-14)

修复

  • 修正 src/dom.js 中 SVG 加载的 fetch 缓存参数名错误 (cache1 -> cache)。
  • 优化 src/index.js 入口逻辑,支持在 DOMContentLoaded 之后加载时自动初始化。

优化

  • 完善 playwright.config.js 自动化测试配置,支持 webServer
  • test/index.html 引入 importmap 映射,实现真正的“零构建”开发体验。

测试

  • 大幅提升 test/dom.test.js 测试覆盖率,涵盖 $if, $each, $bind 等核心指令。
  • 引入性能基准测试Benchmark监控大规模 DOM 渲染性能。

文档

  • 新增 README.mdTEST.md
  • 明确记录架构设计决策:维持“单层响应式”与“基于索引复用”列表机制,以确保极致轻量。