🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@hy-bricks/canvas

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@hy-bricks/canvas - npm Package Compare versions

Comparing version
0.6.1
to
0.6.2
+15
-0
CHANGELOG.md
# @hy-bricks/canvas
## [0.6.2] - 2026-06-23 · 隐藏实例保活(修隐藏→恢复丢状态)
非破坏 patch。@hy-bricks 4 包同步升 0.6.2。
### Fixed
- **隐藏(`hidden`)实例再恢复显示时不再丢组件内部状态**:root 实例 `hidden=true`(`v-show` → `display:none`)会被 RenderScheduler 的 IntersectionObserver 判为"离开视口",超 `disposeDelayMs`(默认 1500ms)就 dispose 卸 vm → 恢复时重挂全新组件、用户选值 / 查询条件 / 取数结果复位(常见症状:恢复后取数裸跑、缺参报错)。修:`hidden` 的 root 实例自动 `RenderScheduler.setHeld` 保活,豁免视口外 dispose,恢复无缝(同一个 vm)。容器子走 Teleport 不经 scheduler,本就不受影响。
- **Teleport outlet `isConnected` 守卫**:父实例卸载瞬间 outlet DOM 已脱离文档但 ref 残留,`resolveOutlet` 加 `isConnected` 判断 → detached 返 null,不往已移除节点投(消除父卸载瞬间子 Teleport 竞态)。
### Added
- **`RenderScheduler.setHeld(id, held)`**:标记实例保活,豁免视口外 dispose(供渲染器实现 hidden 保活)。
- **`HyperCardPageRenderer` 新 prop `keepHiddenMounted`**(`boolean`,默认 `true`):隐藏实例保活开关;传 `false` 退回老行为(隐藏可被 dispose,省内存但恢复丢状态)。
- spec:`createRenderScheduler.spec.ts` +4(setHeld);canvas test → 1717。
> 已知小尾(记 `docs/feedback/portal-ui/`,后续增强):保活后隐藏实例的数据绑定 / 订阅仍在跑(给不可见组件推更新);要"隐藏暂停取数"需配套"显示时 invalidate 补数",否则恢复显旧值。
## [0.6.1] - 2026-06-16 · free-split 编辑控件可见性

@@ -4,0 +19,0 @@

+2
-2
{
"name": "@hy-bricks/canvas",
"version": "0.6.1",
"version": "0.6.2",
"description": "HyperCard 画布 — 多组件实例编排 / 自由布局 / 拖拽 / 连线 / 属性面板。受控组件,SDK 边界守住:不 fetch / 不知后端 / 不开 Drawer。",

@@ -37,3 +37,3 @@ "keywords": [

"vue": "^3.5.0",
"@hy-bricks/core": "^0.6.1"
"@hy-bricks/core": "^0.6.2"
},

@@ -40,0 +40,0 @@ "devDependencies": {

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display