7个最好用的Vue Tree Select树形组件

本文介绍了7款优秀的Vue Tree Select组件,包括Vue JSTree、Vue Draggable Nested Tree和Vue Tree List Component等,这些组件支持搜索过滤、拖拽排序、前端编辑等功能,适用于不同场景的前端开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Vue 树形选择器(Vue tree select)组件在搭建 Vue 的 app 中特别常用,Vue tree select 除了简单的树形结构外,还有非常多样的功能来配合不同场景的使用。比如搜索过滤,前端添加删除树枝,前端编辑修改子树名,拖拽排序,对用户操作事件记录等。

  1. Vue JSTree - 全功能,树状单选多选,可拖拽,过滤搜索
  2. Vue Draggable Nested Tree - 纯树形选择,轻盈趁手
  3. Vue Tree List Component - 前端可编辑、删除,拖拽,界面友好
  4. Vue Tree select - 基础款树形选择器,没有多余功能
  5. Vue Tree Chart - 传图树形选择器 UI 适合展示树状关系
  6. Vue Liquor Tree - 移动端友好,可拖拽,灵活配置
  7. V-TreeView - 基础款树形选择器,可换 icon,可过滤搜索

1. Vue JSTree - 全功能,树状单选多选,可拖拽,过滤搜索

Vue JSTree 放在第一个推荐,因为它涵盖了大多数你需要的功能,单选多选,可更换 icon 简单的搜索过滤,可任意拖拽子集到新集合里。

Vue JSTree 更多功能:

①没有依赖

②单选、多选

③自定义子集 icon

④过滤及搜索

  1. Vue draggable nested Tree - 纯树形选择,轻盈趁手

Vue draggable nested Tree简洁的树形Vue组件。虽然UI简单,但整体轻盈,功能主要集中在树状结构以及鼠标拖拽。对于排序、分组更换这类需求来说是不错的选择。

  1. Vue Tree List Component - 前端可编辑、删除,拖拽,界面友好

Vue Tree List Component是一套制作精良的Vue树形组件。可以直接在前端UI上操作编辑。直接新建文件夹或子节点,重命名节点名,删除节点。拖拽节点到任意子集中,拖拽UI细节做的非常棒,有辅助虚线,方便在拖拽操作时,定位拖拽位置

  1. Vue Tree select - 基础款树形选择器,没有多余功能

Vue Tree select是一个最简单形式的Vue树状组件。没有任何其他多余的功能,他就只有多层树状结构,简单的开合以及点击选择。针对仅需要树状选择组件的使用场景。

  1. Vue Tree Chart - 传图树形选择器 UI 适合展示树状关系

Vue Tree Chart最突出的特点是它的UI设计,它才是传统意义上的树形结构,从树根开始,逐渐展开。特别适合展示权限系统或者公司人员结构这种,能很清晰的展示平行关系。

6.Liquor-Tree - 移动端友好,可拖拽,灵活配置

Liquor Tree是一款轻量级树形选择器,对移动段友好,可拖放,支持键盘快捷键,每个操作动作都有事件记录,与Vue高度整合。Liquor Tree代码简洁,扩展性强,可根据你的应用场景按需定制。7.V-TreeView - 基础款树形选择器,可换 icon,可过滤搜索

V-TreeView树形选择器UI复古,可定义icon可定制上下文菜单,可做简单过滤搜索。代码优雅简洁,没有任何多余功能,很适合做最基础的树形选择功能。

### Vue 2 树状图组件示例与使用教程 尽管现代开发更倾向于使用 Vue 3 和其生态工具,但在某些情况下仍需支持 Vue 2 的功能实现。对于树状图的需求,可以考虑基于 `ECharts` 或专门的第三方库来完成。 #### 方法一:通过 ECharts 实现树状图 以下是利用 ECharts 在 Vue 2 中创建树状图的具体方法: 1. **安装依赖** 需要先引入 ECharts 库到项目中。 ```bash npm install echarts --save ``` 2. **编写组件代码** 下面是一个完整的 Vue 2 组件示例,展示如何在 `onMounted` 生命周期中初始化图表,并处理窗口大小变化以及清理工作[^1]。 ```javascript <template> <div ref="treeChart" style="width: 100%; height: 400px;"></div> </template> <script> import * as echarts from 'echarts'; export default { data() { return { chartInstance: null, treeData: { name: '根节点', children: [ { name: '子节点A' }, { name: '子节点B', children: [{ name: '孙节点C' }] } ] } }; }, mounted() { this.initChart(); window.addEventListener('resize', this.resizeHandler); }, beforeDestroy() { if (this.chartInstance) { this.chartInstance.dispose(); // 销毁实例以释放资源 } window.removeEventListener('resize', this.resizeHandler); // 移除事件监听器 }, methods: { initChart() { const chartDom = this.$refs.treeChart; this.chartInstance = echarts.init(chartDom); const option = { tooltip: {}, series: [{ type: 'tree', data: [this.treeData], top: '1%', left: '7%', bottom: '1%', right: '20%', symbolSize: 7, label: { position: 'left', verticalAlign: 'middle', align: 'right' }, leaves: { label: { position: 'right', verticalAlign: 'middle', align: 'left' } }, expandAndCollapse: true, animationDuration: 550, animationDurationUpdate: 750 }] }; this.chartInstance.setOption(option); }, resizeHandler() { if (this.chartInstance) { this.chartInstance.resize(); } } } }; </script> ``` --- #### 方法二:使用专用的 Vue-Tree-Chart 组件 如果希望减少自定义配置的工作量,可以选择已有的 Vue 插件——`Vue-Tree-Chart`[^2]。该插件提供了开箱即用的功能,适合快速构建简单的树形结构视图。 1. **安装依赖** 安装 `Vue-Tree-Chart` 到您的 Vue 2 项目中: ```bash npm install vue-tree-chart --save ``` 2. **注册并使用组件** 将组件导入并在模板中渲染数据。 ```html <template> <tree-chart :data="treeData"></tree-chart> </template> <script> import TreeChart from 'vue-tree-chart'; import 'vue-tree-chart/dist/style.css'; // 导入样式文件 export default { components: { TreeChart }, data() { return { treeData: { name: '公司架构', attributes: { size: 80, // 节点尺寸 color: '#ff9c0a' // 节点颜色 }, children: [ { name: '部门A', attributes: { size: 60, color: '#fbc6aa' }, children: [ { name: '员工X' }, { name: '员工Y' } ] }, { name: '部门B', attributes: { size: 60, color: '#dcdcdc' }, children: [ { name: '员工Z' } ] } ] } }; } }; </script> ``` 此方式无需额外设置复杂的选项即可生成美观的树状图。 --- #### 性能优化建议 无论是采用原生 ECharts 还是封装好的组件,都需要注意以下几点性能调优事项: - 对于大型数据集,应启用懒加载机制或分页显示策略; - 动态调整容器高度宽度时,避免频繁触发重绘操作; - 渲染完成后及时移除不必要的 DOM 元素和绑定事件。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值