diff --git a/CHANGELOG.md b/CHANGELOG.md index 8fd4972..4c1da7d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # CHANGELOG +## v1.0.19 (2026-06-09) + +### 重大变更 (Pure Synchronous Architecture) +- **架构重组**: 将分散的 8 个文件整合为 3 个高内聚模块 (`utils.js`, `reactive.js`, `engine.js`),大幅减少文件碎片。 +- **全局命名空间平铺**: 彻底移除 `ApigoState` 包装对象,核心 API (`NewState`, `Component`, `$`, `$$` 等) 直接平铺挂载至 `globalThis`,回归最朴素的原生开发范式。 +- **源码脱离 ESM**: 源码层级全面剥离 `import` 和 `export` 语句,配合 IIFE 闭包技术实现内部逻辑封装,确保在 `` 中同步加载的绝对可靠性。 +- **`_refExt` 官方支持**: 将此前作为 Hack 存在的 `_refExt` 机制正式合入引擎核心,支持从外部通过 DOM 节点属性注入额外的响应式上下文。 + +### 优化与修复 +- **测试保真度**: 100% 重构单元测试加载机制,模拟用户真实同步引入环境,确保“所测即所用”。 +- **调试增强**: 引入 `globalThis.__DEBUG` 开关,支持在不污染生产环境的前提下开启详尽的指令解析日志。 +- **模板安全性**: 将自动生成的组件模板改为注入至 `document.head`,防止应用级 `innerHTML` 重置导致模板丢失。 + ## v1.0.17 (2026-06-05) ### 重大变更 (Philosophical Restoration) diff --git a/README.md b/README.md index 2861669..5b75426 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,31 @@ # @apigo.cc/state - AI 逻辑操作说明书 -本框架基于原生 `Proxy` 和 `MutationObserver` 实现数据与 DOM 的原子级同步。本手册仅供 AI 构建、维护及驱动基于此引擎的应用。 +本框架基于原生 `Proxy` 和 `MutationObserver` 实现数据与 DOM 的原子级同步。采用纯原生、零 ESM、全同步加载架构。 --- -## 1. 核心状态逻辑映射 +## 0. 快速开始 (Quick Start) +直接在 HTML 中引入(无需打包,完全非 ESM 注入): +```html + +``` -### `NewState(defaults, getter, setter)` -* **功能**:创建响应式代理。 -* **内部机制**:拦截所有属性读写。若属性值变更,触发所有引用该属性的 DOM 节点的更新任务(异步微任务)。 -* **扩展逻辑**:通过 `getter/setter` 拦截器可实现数据持久化(如同步至 URL Hash 或 LocalStorage)。 -* **原子操作**: - * `obj.__watch(key, cb)`: 建立 key -> callback 的直接依赖。 - * `obj.__unwatch(key, cb)`: 解除依赖。 +--- + +## 1. 核心全局 API + +引入后,以下接口直接挂载至 `globalThis`: + +| API | 功能说明 | +| :--- | :--- | +| **`NewState(defaults, getter, setter)`** | 创建响应式状态代理对象。 | +| **`Component.register(name, setup, tpl)`** | 注册自定义组件。支持自动模板合并。 | +| **`RefreshState(node)`** | (别名 `_unsafeRefreshState`) 手动触发特定树的扫描。仅限极致性能调优。 | +| **`SetTranslator(fn)`** | 设置国际化翻译函数。 | +| **`$` / `$$`** | 增强型原生选择器(支持限定作用域)。 | +| **`Util`** | 常用工具集(`clone`, `makeDom`, `getFunctionBody` 等)。 | +| **`Hash` / `LocalStorage`** | 自动同步至 URL 或本地存储的响应式单例。 | +| **`State`** | 框架内置的全局持久化状态单例(含 `exitBlocks` 等控制位)。 | --- @@ -24,61 +37,35 @@ | 指令 | 触发逻辑 | DOM 行为 | 运行约束 | | :--- | :--- | :--- | :--- | | **`$if`** | `Boolean(result)` | `true`: 挂载节点; `false`: 移除节点。 | **必须** 作用于 `