Vue2组件tree实现无限级树形菜单

发布时间 - 2026-01-11 00:25:05    点击率:

一直打算偷懒使用个现成的树组件,但是在github上找了一大圈没有找到真正满足应用开发的树组件,所以没办法只能自己写了一个,开源出来希望可以帮助到需要的人,同时如果大家觉得好用,我可以顺带骗骗★(希望喜欢的朋友对我体力的肯定可以点下★ ),由于我也算刚接触vue,所以难免有所考虑不周的地方,希望大家在issue里面指正。组件重点是父子组件数据的共享和状态保持,我是利用了下vuex的思路,采用一个控制仓库完成。

github 地址 vue-tree

How to run demo

npm install
npm run dev

效果图

示例

<template>
 <div style="width:300px;">
 <tree ref ='tree' :treeData="treeData" :options="options" @node-click='handleNode'/>
 </div>
</template>
<script>
import Tree from '../components/tree/tree.vue'
export default {
 name: 'test',
 data () {
 return {
  options: {
  showCheckbox: true,
  search: {
   useInitial: true,
   useEnglish: false,
   customFilter: null
  }
  },
  treeData: [
  {
   id: 1,
   label: '一级节点',
   open: true,
   checked: false,
   parentId: null,
   visible: true,
   searched: false,
   children: [
   {
    id: 2,
    label: '二级节点-1',
    checked: false,
    parentId: 1,
    searched: false,
    visible: true
   },
   {
    label: '二级节点-2',
    open: true,
    checked: false,
    id: 3,
    parentId: 1,
    visible: true,
    searched: false,
    children: [
    {
     id: 4,
     parentId: 3,
     label: '三级节点-1',
     visible: true,
     searched: false,
     checked: false
    },
    {
     id: 5,
     label: '三级节点-2',
     parentId: 3,
     searched: false,
     visible: true,
     checked: false
    }
    ]
   },
   {
    label: '二级节点-3',
    open: true,
    checked: false,
    id: 6,
    parentId: 1,
    visible: true,
    searched: false,
    children: [
    {
     id: 7,
     parentId: 6,
     label: '三级节点-4',
     checked: false,
     searched: false,
     visible: true
    },
    {
     id: 8,
     label: '三级节点-5',
     parentId: 6,
     checked: false,
     searched: false,
     visible: true
    }
    ]
   }
   ]
  }
  ]
 }
 },
 components: {Tree}
}
</script>

属性

 options: {
  showCheckbox: true, //是否支持多选
  search: {
   useInitial: true, //是否支持首字母搜索
   useEnglish: false, //是否是英文搜索
   customFilter: null // 自定义节点过滤函数
  }

 /* 节点元素 */
 {
  id: 1, //节点标志
  label: '一级节点', //节点名称
  open: true, // 是否打开节点
  checked: false, //是否被选中
  parentId: null, //父级节点Id
  visible: true, //是否可见
  searched: false, //是否是搜索值
  children: [] //子节点
 }

方法

事件

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# vue  # tree  # 树形菜单  # vue Element左侧无限级菜单实现  # Vue.js组件tree实现无限级树形菜单  # vue实现多级菜单效果  # Vue+Element ui实现树形控件右键菜单  # vue实现右键弹出菜单  # vue-router+vuex addRoutes实现路由动态加载及菜单动态加载  # Vue.js 递归组件实现树形菜单(实例分享)  # 基于vue.js实现侧边菜单栏  # Vue实现导航栏菜单  # Vue3.0实现无限级菜单  # 的人  # 我是  # 对我  # 没办法  # 英文  # 找了  # 写了  # 自定义  # 希望大家  # 也算  # 好用  # 没有找到  # 可以帮助  # 开源  # 大家多多  # 多选  # 可以点  # 首字母  # 大圈  # 但是在 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Bootstrap整体框架之CSS12栅格系统  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  C#如何调用原生C++ COM对象详解  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  如何快速搭建高效简练网站?  Linux系统命令中screen命令详解  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门  如何在云服务器上快速搭建个人网站?  Swift中switch语句区间和元组模式匹配  Android滚轮选择时间控件使用详解  如何在 React 中条件性地遍历数组并渲染元素  如何快速搭建高效香港服务器网站?  QQ浏览器网页版登录入口 个人中心在线进入  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  如何在IIS7中新建站点?详细步骤解析  手机软键盘弹出时影响布局的解决方法  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  高端建站三要素:定制模板、企业官网与响应式设计优化  简单实现Android文件上传  如何注册花生壳免费域名并搭建个人网站?  linux写shell需要注意的问题(必看)  php json中文编码为null的解决办法  再谈Python中的字符串与字符编码(推荐)  今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】  Android Socket接口实现即时通讯实例代码  制作电商网页,电商供应链怎么做?  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  常州企业网站制作公司,全国继续教育网怎么登录?  如何在Windows虚拟主机上快速搭建网站?  Laravel集合Collection怎么用_Laravel集合常用函数详解  如何用好域名打造高点击率的自主建站?  如何在云主机快速搭建网站站点?  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  Laravel中的withCount方法怎么高效统计关联模型数量  js代码实现下拉菜单【推荐】  制作公司内部网站有哪些,内网如何建网站?  浅析上传头像示例及其注意事项  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  Laravel如何实现事件和监听器?(Event & Listener实战)  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  如何快速重置建站主机并恢复默认配置?  制作企业网站建设方案,怎样建设一个公司网站?  Linux网络带宽限制_tc配置实践解析【教程】  使用spring连接及操作mongodb3.0实例  android nfc常用标签读取总结  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  Laravel观察者模式如何使用_Laravel Model Observer配置