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


Posted in Javascript onMarch 29, 2017

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

github 地址 vue-tree

How to run demo

npm install
npm run dev

效果图

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

示例

<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>

属性

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

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: [] //子节点
 }

方法

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

事件

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

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

Javascript 相关文章推荐
JQuery.closest(),parent(),parents()寻找父结点
Feb 17 Javascript
浅谈JavaScript中Date(日期对象),Math对象
Feb 05 Javascript
JavaScript数据结构与算法之栈详解
Mar 12 Javascript
javascript中的previousSibling和nextSibling的正确用法
Sep 16 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
Dec 13 Javascript
如何写好你的JavaScript【推荐】
Mar 02 Javascript
Javascript 编码约定(编码规范)
Mar 11 Javascript
JS中的回调函数实例浅析
Mar 21 Javascript
js中Object.defineProperty()方法的不详解
Jul 09 Javascript
详解vue.js根据不同环境(正式、测试)打包到不同目录
Jul 13 Javascript
详解VScode编辑器vue环境搭建所遇问题解决方案
Apr 26 Javascript
微信小程序开发之获取用户手机号码(php接口解密)
May 17 Javascript
整理关于Bootstrap列表组的慕课笔记
Mar 29 #Javascript
Vue.js 插件开发详解
Mar 29 #Javascript
整理关于Bootstrap过渡动画的慕课笔记
Mar 29 #Javascript
整理关于Bootstrap模态弹出框的慕课笔记
Mar 29 #Javascript
Angular2平滑升级到Angular4的步骤详解
Mar 29 #Javascript
jQuery插件之validation插件
Mar 29 #jQuery
Vue.js实现移动端短信验证码功能
Mar 29 #Javascript
You might like
phpmailer发送gmail邮件实例详解
2013/06/24 PHP
php将数组转换成csv格式文件输出的方法
2015/03/14 PHP
PHP中preg_match正则匹配中的/u、/i、/s含义
2015/04/17 PHP
ThinkPHP模型详解
2015/07/27 PHP
基于jQuery的左右滚动实现代码
2010/12/03 Javascript
javascript动画对象支持加速、减速、缓入、缓出的实现代码
2012/09/30 Javascript
JS和Jquery获取和修改label的值的示例代码
2014/01/15 Javascript
javascript操作select元素实例分析
2015/03/27 Javascript
jquery实现一个简单的表单验证实例
2016/03/30 Javascript
Bootstrap弹出框(modal)垂直居中的问题及解决方案详解
2016/06/12 Javascript
总结AngularJS开发者最常犯的十个错误
2016/08/31 Javascript
js动态生成form 并用ajax方式提交的实现方法
2016/09/09 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
2016/10/31 Javascript
JS实现重新加载当前页面或者父页面的几种方法
2016/11/30 Javascript
angular实现表单验证及提交功能
2017/02/01 Javascript
JS中SetTimeout和SetInterval使用初探
2017/03/23 Javascript
详解angular element()方法使用
2017/04/08 Javascript
vue基于Vue2.0和高德地图的地图组件实例
2017/04/28 Javascript
浅谈JavaScript find 方法不支持IE的问题
2017/09/28 Javascript
使用Vuex解决Vue中的身份验证问题
2018/09/28 Javascript
python判断端口是否打开的实现代码
2013/02/10 Python
使用简单工厂模式来进行Python的设计模式编程
2016/03/01 Python
Django实现简单分页功能的方法详解
2017/12/05 Python
Python通过Pygame绘制移动的矩形实例代码
2018/01/03 Python
python3 读写文件换行符的方法
2018/04/09 Python
pandas带有重复索引操作方法
2018/06/08 Python
Python hmac模块使用实例解析
2019/12/24 Python
python zip()函数的使用示例
2020/09/23 Python
HTML5如何使用SVG的方法示例
2019/01/11 HTML / CSS
syb养殖创业计划书
2014/01/09 职场文书
《夹竹桃》教学反思
2014/04/20 职场文书
关于热爱祖国的演讲稿
2014/05/04 职场文书
2015年社区居委会工作总结
2015/05/18 职场文书
Python爬虫基础初探selenium
2021/05/31 Python
MySQL 8.0 驱动与阿里druid版本兼容问题解决
2021/07/01 MySQL
Python使用openpyxl模块处理Excel文件
2022/06/05 Python