与 vue-okr-tree 的差异(迁移说明)

从 vue-okr-tree(Vue 2)迁移到 vue3-okr-tree 的有意差异清单

API 名称与语义完全对齐,直接把 import { VueOkrTree } from 'vue-okr-tree' 换成 vue3-okr-tree 并引入 dist/style.css 即可。以下为有意差异(均为缺陷修复或原版从未生效的能力):

项目vue-okr-tree(Vue 2)vue3-okr-tree
render-content 的 hVue 2 的 createElementVue 3 的 h(属性写法按 Vue 3:{ class, style, onClick })
filter 范围只过滤第一个根节点的子树,第一层节点自身永不隐藏全树过滤,父节点有可见后代时保持可见(element-ui 语义)
OKR 左右树同 key共用注册表,互相覆盖左右分表,getNode 右树优先;default-expanded-keys / current-node-key 两树同时生效
animate / animate-duration点击 +/- 实际无过渡;animate-duration 从未生效展开/收起有真实过渡,三个动画 prop 均生效
根对齐需在业务层手动测量 DOM内建 align-root(可关闭)
插槽内部有插槽代码但外部无法使用开放 #default="{ node, data }"
props.disabled声明未使用实现真实禁用
全局样式* { margin:0; padding:0 } 污染宿主页面样式全部限定在 .org-chart-container 内
死代码selectedKey / orkstyle / props.leftChildren 等声明未使用不移植

Vue 3 版新增能力

  • 受控状态 v-model:expanded-keys / v-model:current-key 与展开/收起/滚动方法(1.2.0)
  • #expand-btn / #empty 插槽、node-component prop、createTypedOkrTree<T>()(1.2.0 / 1.3.0)
  • <OkrTreeGroup> 多树根对齐、WAI-ARIA 键盘导航(1.3.0)
  • lazy + load 懒加载、<OkrTreeViewport> 画布缩放与导出、getNodeEl(1.4.0)
  • deep-watch 性能开关、逐层脏检查增量更新(1.5.0)
  • 冻结 / 只读源数据兼容、运行时 prop 同步与开发期警告(1.6.0)
  • accordion 手风琴、expand-on-click-node 点击节点展开、SSR 可用、peer 收紧 vue >= 3.3(1.7.0 / 1.8.0)
  • 复选框选择模式 show-checkbox / check-strictly / default-checked-keys,父子联动半选、6 个方法、check / check-change 事件(1.9.0)
  • 拖拽调整层级 draggable / allow-drag / allow-drop、6 个拖拽事件、moveNode(1.10.0)
  • SVG 连接线模式 connector="svg" 与 curve / orthogonal / straight 三种路径形状(1.11.0)
  • 查询辅助方法 getVisibleNodes() / getNodePath()、@media print 打印样式(1.12.0)
  • unstyled prop:去掉卡片外观只留布局与连接线,供 Tailwind / 自有设计系统接管(1.13.0)
  • 导出 BUILT_IN_THEMES:内置六套主题名清单(TreeTheme 由它派生),做主题选择器不必再硬编码字符串数组(1.14.0)
Copyright © 2026