5.7 KiB
5.7 KiB
CHANGELOG
v1.0.10 (2026-05-18)
修复
- 生命周期: 修复了
onunload监听器因字符串匹配错误导致的失效问题。 - 插槽合并: 修复了
_mergeNode在处理TEMPLATE节点时未正确指向.content的问题。 - 架构对齐: 恢复了
_parseNode的原始执行顺序,确保组件初始化与属性绑定时序的绝对安全性。
v1.0.9 (2026-05-18)
修复
- 事件监听: 修复了
dom.js中onunload钩子由于字符串匹配错误导致失效的问题(由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逻辑,支持组件模板与实例之间的class和style属性合并,而非简单覆盖。 - 动态绑定增强: 优化
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.js中NewState增加对已观察对象的检查,防止重复包装导致的性能损耗。 - 功能:
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.md与TEST.md。 - 明确记录架构设计决策:维持“单层响应式”与“基于索引复用”列表机制,以确保极致轻量。