vue2中实现 TDesign 树形懒加载

之前我有写过Element ui的树形懒加载
其主要是通过load函数来实现
而TDesign也是照虎画猫
他也是主要靠load

我们先来看一个基本的组件

<template>
      <t-tree :data="items" :load="load" />
template>

<script lang="jsx">

export default {
  data() {
    return {
      items: [
        {
          label: '1',
          children: true,
        },
        {
          label: '2',
          children: true,
        },
      ],
    };
  },
  methods: {
    load(node) {
      console.log(node);
      return new Promise((resolve) => {
        setTimeout(() => {
            let nodes = [
              {
                label: '3',
                children: false,
              },
            ];
          resolve(nodes);
        }, 500);
      });
    },
  },
};
script>

这里和Element ui不同的是 Element ui的树形load一进来就会触发一次
你可以通过load来加载根目录的数据
但TDesign是只有点击父节点才会触发 一进来是不会触发的
所以 第一级的数据 你要自己想办法弄给树形绑定的 data
像这里 我就直接将数据写给了items
如果是请求数据 你就要在生命周期里将第一级赋值给 data绑定的属性
然后我们运行项目
vue2中实现 TDesign 树形懒加载_第1张图片
然后我们点击 这就会触发 load 带出下面层级的数据
vue2中实现 TDesign 树形懒加载_第2张图片
我这里是直接无脑返回了

[
	{
	  label: '3',
	  children: false,
	},
];

的数据结构 实际中 肯定还是要根据父id来的
然后呢 这个children就是来控制是否有子集的
你赋值true 他就会显示前面可以展开的那个箭头
设置false 表示没有子集 就没有这个箭头了
vue2中实现 TDesign 树形懒加载_第3张图片

你可能感兴趣的:(tdesign)