树视图和网页视图怎么选?
结论
结构化、层级、和编辑器右键菜单一体的数据用树视图。自由布局、图表、复杂表单、自定义绘图用网页视图。不要为了好看把一棵普通文件树做成网页。
展开
树视图适合:
- 资源管理器风格的层级
- 测试列表、符号列表、依赖树
- 需要节点右键、拖拽、复选框、和命令面板同一套命令
- 数据量大但可以懒加载
它自动处理滚动、展开记忆、键盘和无障碍,和主题一致。代价是每一行的版式有限,做不到任意 CSS。
网页视图适合:
- 预览渲染结果
- 图表、画布、设计器
- 复杂筛选表单
- 需要前端框架的交互
代价是你要自己做安全策略、消息协议、状态恢复、主题适配和销毁。性能和内存也要自己管。
可以组合。侧边栏用树做导航,点节点后在编辑器区打开网页看详情。不要在网页里重做一棵和资源管理器抢功能的树,除非产品交互确实超出 TreeItem。
面试时补一句权衡:树的开发量和卡顿风险更低;网页的上限高,但生命周期和安全是必答题。
容易讲错的点
- 清单里视图类型要选对。
type: webview就不会走TreeDataProvider。 - 树的图标不够用时,先看
ThemeIcon和iconPath,不要直接换网页。 - 两边都不要在扩展宿主里同步造出整棵无限树再一次渲染。