G6 TreeGraph树图节点懒加载使用场景示例

 更新时间:2023年10月27日 09:15:41   作者:fuGUI  
这篇文章主要为大家介绍了G6 TreeGraph树图节点懒加载使用场景示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

场景

最近在使用G6 TreeGrap展示树形结构数据的时候,由于节点数量比较多,导致页面卡顿,甚至崩溃,最后不得不考虑懒加载的形式加载节点,每次点击节点动态的增加子级节点。

实现代码

graph.changeData(data, stack)

更新数据源,根据新的数据重新渲染视图。

参数

名称类型是否必选描述
dataObjectfalse图数据,是一个包括 nodes 和 edges 的对象。若不指定该参数,则使用当前数据重新渲染
stackbooleanfalse操作是否入 undo & redo 栈,当实例化 Graph 时设置 enableStack 为 true 时,默认情况下会自动入栈,入栈以后,就支持 undo & redo 操作,如果不需要,则设置该参数为 false 即可

用法

const data = {
  nodes: [
    {
      id: 'node1',
      label: 'node1',
    },
    {
      id: 'node2',
      label: 'node2',
    },
  ],
  edges: [
    {
      source: 'node1',
      target: 'node2',
    },
  ],
};
// graph是Graph的实例
graph.changeData(data);
// 若不指定该参数,则使用当前图上的数据重新渲染
graph.changeData();

通过对当前节点的children赋值然后调用graph.changeData()方法即可

// .....
// 节点点击事件
graph.on("node:click", function (evt) {
        const item = evt.item;
        const nodeId = item.get("id");
        console.log(nodeId);
        const model = item.getModel();
        const children = model.children;
        if (!children || children.length === 0) {
          //点击节点获取下级节点接口
          //...........
          const parentData = graph.findDataById(nodeId);
          if (!parentData.children) {
            parentData.children = [];
          }
          // 如果childData是一个数组,则直接赋值给parentData.children
          // 如果是一个对象,则使用parentData.children.push(obj)
          parentData.children = childData;
          graph.changeData();
        }
      });

以上就是G6 TreeGraph树图节点懒加载的详细内容,更多关于G6 TreeGraph树图节点懒加载的资料请关注脚本之家其它相关文章!

相关文章

  • 微信小程序实现省市区三级地址选择

    微信小程序实现省市区三级地址选择

    这篇文章主要为大家详细介绍了微信小程序实现省市区三级地址选择,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • javascript页面渲染速度测试脚本分享

    javascript页面渲染速度测试脚本分享

    这篇文章主要介绍了javascript页面渲染速度测试脚本,计算浏览器渲染HTML页面所需要的时间,需要的朋友可以参考下
    2014-04-04
  • BootStrapTable服务器分页实例解析

    BootStrapTable服务器分页实例解析

    项目中经常会使用到表格,数据量大的时候还需要进行分页,项目设计阶段,我选择了bootstrapTable的js插件,个人觉得这个框架非常好用,支持服务器端分页,此篇主要写的主要是关于服务器分页,需要的朋友可以参考下
    2016-12-12
  • 使用webpack构建应用的方法步骤

    使用webpack构建应用的方法步骤

    这篇文章主要介绍了使用webpack构建应用的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Bootstrap每天必学之表格

    Bootstrap每天必学之表格

    Bootstrap每天必学之表格,向大家分享了几种最为常用的各种列表展示,希望大家喜欢。
    2015-11-11
  • 一文详解JavaScript中prototype的使用

    一文详解JavaScript中prototype的使用

    这篇文章主要为大家详细介绍一下JavaScript中prototype的使用,文中的示例代码讲解详细,对我们学习有一定帮助,需要的可以参考一下
    2022-05-05
  • JS+Canvas绘制抽奖转盘

    JS+Canvas绘制抽奖转盘

    这篇文章主要为大家详细介绍了JS+Canvas绘制抽奖转盘,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • 基于Typescript与Axios的接口请求管理详解

    基于Typescript与Axios的接口请求管理详解

    接口是一系列抽象方法的声明,是一些方法特征的集合,这些方法都应该是抽象的,需要由具体的类去实现,然后第三方就可以通过这组抽象方法调用,让具体的类执行具体的方法,这篇文章主要给大家介绍了基于Typescript与Axios的接口请求管理的相关资料,需要的朋友可以参考下
    2021-09-09
  • 通过实例了解JS执行上下文运行原理

    通过实例了解JS执行上下文运行原理

    这篇文章主要介绍了通过实例了解JS执行上下文运行原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • three.js中正交与透视投影相机的实战应用指南

    three.js中正交与透视投影相机的实战应用指南

    在three.js中摄像机的作用就是不断的拍摄我们创建好的场景,然后通过渲染器渲染到屏幕中,下面这篇文章主要给大家介绍了关于three.js中正交与透视投影相机应用的相关资料,需要的朋友可以参考下
    2022-08-08

最新评论