Skip to content

发版历史

@hy-bricks 的 4 个包(core / canvas / editor / devtools)走 fixed 组 lock-step:同一次发布共享同一个版本号,pnpm add @hy-bricks/core@x.y.z 时 4 包对齐即可。

本页是面向使用方的精炼发版历史;逐条完整变更(含内部实现)见仓库各包 CHANGELOG.md。 当前阶段 pre-1.0(0.x):次版本可能含破坏性变更,升级前看清本页 ⚠️ 标记。


0.6.6 · 调度器「渐进挂载但不卸载」模式

2026-06-27 · patch

续 0.6.5:disabled 是「立即全挂、永不卸载」(连渐进挂载也省掉);但有时你想首屏还是分帧渐进挂(实例多了不卡)、又不要滚动时卸载抖动(嵌套滚动里的看板缩略画布)。0.6.6 给这个中间档。全 additive、默认行为不变。

  • 新增 schedulerOptions.disposeOnExit(默认 true = 现行为):false = 渐进挂载但不卸载。实例仍按「进视口才挂」分帧渐进挂(保留首屏不卡),但已挂载的滚出视口不再卸载、常驻 —— 既不重渲染、也不触发宿主重新取数。
  • 三档怎么选:
    • 默认(disposeOnExit: true):渐进挂 + 滚出卸 —— 省内存,滚回会重挂(重渲染 + 宿主重取)。大画布用。
    • disposeOnExit: false:渐进挂 + 永不卸 —— 首屏分帧快、滚动零抖动,代价是已挂的常驻内存。嵌套滚动缩略画布用。
    • disabled: true:立即全挂 + 永不卸 —— 最简,但首屏一次性全挂、无渐进。少量实例用。

📖 渲染调度

0.6.5 · 调度器关虚拟化开关 + root 时序修复

2026-06-27 · patch

把渲染器嵌进你自己的滚动容器(整页滚动 → 看板自有滚动 → 画布)时的两个坑,给了正解。全 additive、默认行为不变。

  • 新增 schedulerOptions.disabled(默认 false):关掉视口虚拟化的逃生舱。true 时画布里所有实例立即且永久挂载、永不卸载——适合「画布嵌在你自己的滚动容器里 / 渲缩略图 / 少量带数据绑定的实例,不想被滚出视口就卸载→重挂(会重置状态、触发重新取数)」。⚠️ 不要用在大画布(放弃了渐进挂载与卸载兜底,大量实例会卡首屏 + 占内存)。
  • schedulerOptions.root 现在接受 getter(() => ref.value)+ 新增 RenderScheduler.refreshRoot():修「把你自己的祖先滚动容器 ref 当 root 传,却被静默退化成视口」的时序坑。迁移:root: ref.valueroot: () => ref.value(渲染器会在挂载后自动用真容器重建)。或干脆 disabled: true
  • root getter 解析不到元素时,开发环境会 console.warn 提醒一次。

📖 渲染调度

0.6.4 · 布局黄框误报修复 + editor peer 放宽

2026-06-25 · patch

  • 修复:容器卡片滚出视口被虚拟化卸载时,卡内 slot 子组件不再误报「布局问题」黄框 —— 此前会泄漏到运行态终端用户(滚回可视即恢复)。真正的布局配错仍照常提示,不受影响。
  • @hy-bricks/editor:tailwindcss / tailwindcss-animate 改为可选 peerDependencies —— 只引预编译 @hy-bricks/editor/style.css、不自带 Tailwind 的宿主装包不再报 missing peer tailwindcss 警告。

📖 渲染一个页面


0.6.3 · 组件运行态快照持久化

2026-06-24 · patch

修「看板组件滚出视口 / 界面重渲染后,用户运行时选的值(如维度=年)变回默认、查询条件丢」。

  • 修复(所有宿主自动生效,无开关):重渲染不再把用户运行时改过的属性面板值冲回文档默认 —— 只有值真变了才同步。
  • 新增 persistInstanceState(opt-in,默认 false):实例被视口虚拟化真销毁再重建时,拍 $data 快照并还原,让「滚出视口再回来」不丢状态。HyperCardCanvasDesigner / HyperCardPageRenderer / RuntimeLayer 同名 prop 透传。与 keepHiddenMounted 互补:隐藏的保活;滚没的拍照
  • 已知限制:① 组件在 mounted异步重置状态不在保护范围(还原是同步的,异步会盖过);② instanceId 必须逻辑唯一、不可删后复用。

📖 渲染一个页面 › persistInstanceState · 常见问题排查


0.6.2 · 隐藏实例保活

2026-06-23 · patch

  • 修复:hidden(v-show / display:none)的实例再恢复显示时不再丢内部状态(此前会被视口调度误判离开视口而销毁)。
  • 新增 keepHiddenMounted(HyperCardPageRenderer,默认 true):隐藏实例保活开关;传 false 退回旧行为(省内存但恢复丢状态)。

📖 渲染一个页面


0.6.1 · free-split 编辑控件可见性

2026-06-16 · patch

  • 修复:选中 free-split 容器内部子组件时,不再丢父容器的分隔条 / 叶控件(控件可见集改为 ancestor-aware)。
  • 新增 freeSplitControlsAlways(默认 false):开启后编辑态所有 free-split 容器控件常驻显示。

📖 自由分割布局


0.6.0 · 公开面收口 + 级联删除 ⚠️

2026-06-15 · minor · 含破坏性变更

  • ⚠️ 破坏:① 移除一批 test-only / SDK 内部导出(收紧公开面,正常业务不受影响);② beginBatch / endBatch深度计数(成对配平、可嵌套,只有最外层 endBatch 落 undo,不再幂等);③ removeInstance 默认级联删除 —— 删容器会带走整棵子树并清关联绑定(undo 完整恢复);要旧的「留孤儿」口径传 cascadeRemove: false
  • 新增 CanvasHandle.getRemoveImpact(id):删前预检受影响实例(宿主自行弹确认)。
  • 含本轮审计的正确性 / 性能 / 类型 / 去重修复。

📖 CanvasHandle


0.5.0 · free-split 自由分割布局

2026-06-03 · minor

  • 新增:第 5 种容器布局 —— 自由分割(容器内递归 BSP 分割树)。渲染 data-driven(任意宿主有合法数据即渲染),freeSplitEnabled 只限制编辑能力。

📖 自由分割布局


0.4.2 · devtools 强化

2026-05-28 · patch

诊断 devtools 配套增强(随 fixed 组同步)。📖 devtools


0.4.1 · 发版说明可见性补丁

2026-05-27 · patch · 纯文档

CHANGELOG.md 纳入 npm 包产物 + README 顶部补 BREAKING / 新特性,让 npm 包页面首屏可见。代码零变更,可从 0.4.0 透明升上来。


0.4.0 · 组件 mounted 里立即可订阅 ⚠️

2026-05-27 · minor · 含破坏性变更

  • ⚠️ 破坏:instance:ready 的触发时机从 mounted 后提前到 created 后。回调里访问 vm.$el 会拿到 null —— 需改成 nextTick() 后再访问 DOM。
  • 新增 3 个保留 prop:hcInstanceId / hcCanvasId / hcComponentId(组件作者别声明同名)—— 组件在 mounted(乃至 created)里即可订阅其它实例。

📖 组件间事件


0.3.0 · 渲染核心:mount-ready 信号 + 精确读 cache

2026-05-23 · minor

  • 新增:CanvasHandle.on('instance:ready' | 'instance:unmounted') 生命周期信号 + getInstanceReady(id) / getInstanceRuntime(id) / getCachedBySourceId(sourceId, params?) 精确读运行态 / 快照。

📖 CanvasHandle


更早版本

0.2.x(布局系统:flex / split / grid / free 容器 + 分隔条拖动)、0.1.x(组件运行时 + 嵌入式编辑器 + 设计器骨架)等早期版本的逐条记录见仓库各包 CHANGELOG.md

最后更新: