高性能 vue.js+ztree 树形组件Vue-GiantTree

boyanx4个月前技术教程15

今天给大家分享一款超棒的Vue海量数据渲染树形组件VueGiantTree。

vue-giant-tree 基于 ztree 封装的Vue树形组件。轻松实现大数据高性能渲染,适合海量数据渲染场景。

zTree简介

一个依靠 jQuery 实现的多功能 “树插件”。star高达3.7K+。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。

特性

  • zTree v3.0 支持核心代码按需加载
  • 采用了 延迟加载 技术,上万节点轻松加载,即使在 IE6 下也能基本做到秒杀
  • 兼容 IE、FireFox、Chrome、Opera、Safari 等浏览器
  • 支持JSON、静态 和 Ajax 异步加载节点数据
  • 支持任意更换皮肤 / 自定义图标(依靠css)
  • 支持极其灵活的 checkbox 或 radio 选择功能
  • 提供多种事件响应回调
  • 灵活的编辑(增/删/改/查)功能,可随意拖拽节点,还可以多节点拖拽哟
  • 在一个页面内可同时生成多个 Tree 实例
  • 简单的参数配置实现 灵活多变的功能
http://www.treejs.cn/
https://github.com/zTree/zTree_v3

以上就是ztree.js的简单介绍,需要了解更多可以自行去官网查阅文档。

为什么需要vue-giant-tree

Vue的数据监听机制决定了在大数据量场景下的渲染性能非常低下,基于Vue实现的常规树组件几乎无法胜任上万条数据的高性能渲染,在IE浏览器中很容易导致页面卡死甚至浏览器崩溃。

vue-giant-tree 直接基于ztree做上层封装,能高效的渲染海量数据。

安装

$ npm i vue-giant-tree -S

使用插件



<script>
  import tree from "vue-giant-tree";
  export default {
    components: {
      tree
    },
    data() {
      return {
        nodes: [
          { id:1, pid:0, name:"随意勾选 1", open:true},
          { id:11, pid:1, name:"随意勾选 1-1", open:true},
          { id:111, pid:11, name:"随意勾选 1-1-1"},
          { id:112, pid:11, name:"随意勾选 1-1-2"},
          { id:12, pid:1, name:"随意勾选 1-2", open:true},
          { id:121, pid:12, name:"随意勾选 1-2-1"},
          { id:122, pid:12, name:"随意勾选 1-2-2"},
          { id:2, pid:0, name:"随意勾选 2", checked:true, open:true},
          { id:21, pid:2, name:"随意勾选 2-1"},
          { id:22, pid:2, name:"随意勾选 2-2", open:true},
          { id:221, pid:22, name:"随意勾选 2-2-1", checked:true},
          { id:222, pid:22, name:"随意勾选 2-2-2"},
          { id:23, pid:2, name:"随意勾选 2-3"}
        ]
      }
	}
  }
</script>

附上示例及项目地址

# demo地址
https://refined-x.com/Vue-Giant-Tree/

# 仓库地址
https://github.com/tower1229/Vue-Giant-Tree

ok,就分享到这里。希望能对大家有所帮助,欢迎一起交流分享哈!

相关文章

一文介绍amis百度低代码框架

最近公司的后台管理系统接入了amis低代码平台,就想写下对于这个低代码框架的使用心得,以及如何通过这个框架完成日常需求中的功能。背景是项目经理希望后续在前端开发pd数比较紧张的情况下,后端也能够介入前...

使用INFINITE AJAX SCROLL实现下拉加载效果

现在很多网页都有个体验不错的效果:浏览到页面底部的时候,自动加载下一页内容,也就是下拉加载效果,这种效果可以让用户不用点击“下一页”按钮,也可以实现翻页,无论在PC还是手机上,体验效果都很不错,下面我...

7种响应式导航解决方案

响应式导航的设计遵循了响应式Web设计理念,页面的设计往往会根据用户行为以及设备环境(系统平台、屏幕尺寸、屏幕定向等)进行相应的调整。通过同比例缩减元素尺寸、调整页面结构布局以及内容的优化调整等方式,...

web前端的左侧导航狼,难道你不想试试吗?

斑斓说左侧二级菜单良多前端新手会写下拉或者其他的菜单,可是一写二级菜单就出错了。知识点:html标签(div,ul,a),css款式属性(浮动,定位),构造思惟,js根本,逻辑思维。源码:斑斓说左侧二...

jquery 表单常用方法解析

input选择NAME参数$("input[name='optionsRadios']").prop("checked",false);赋值$("input[name='radioName'][val...

上万条数据 批量录入系统的自动化过程

在日常的工作中 ,使用Excel保存处理数据很方便,但不利于分散数据收集和统计。如果建立了信息管理系统,就需要把数据批量录入到管理系统,如果系统不提供数据导入功能,仅靠人工录入数据,不仅费时费力,还特...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。