Ant Design of Vue的树形控件Tree的使用及说明

Ant Design 是一款优秀的 React UI 库,它的 Vue 版本 Ant Design of Vue 同样也是备受欢迎的UI框架之一。Ant Design of Vue中提供了一种常用的可展开、可收起的树形控件 Tree,下面我来详细介绍如何使用及说明。

安装

可以通过 npm 或 yarn 安装 Ant Design of Vue。

使用 npm:

npm install --save ant-design-vue

使用 yarn:

yarn add ant-design-vue

导入组件

在需要使用 Tree 的文件中,导入 Tree 组件:

import { Tree } from 'ant-design-vue';

基础用法

下面展示一个简单的 Tree,包含三个 TreeNode。可以通过 key 取到节点对象,然后自定义节点的内容。示例代码如下:

<template>
  <a-tree :default-expanded-keys="['0-0-0', '0-0-1']">
    <a-tree-node title="parent 1" key="0-0">
      <a-tree-node title="parent 1-0" key="0-0-0">
        <a-tree-node title="leaf" key="0-0-0-0"></a-tree-node>
        <a-tree-node title="leaf" key="0-0-0-1"></a-tree-node>
      </a-tree-node>
      <a-tree-node title="parent 1-1" key="0-0-1">
        <a-tree-node title="<span style='color:red'>html can be used</span>" key="0-0-1-0" />
      </a-tree-node>
    </a-tree-node>
  </a-tree>
</template>
  1. default-expanded-keys 属性定义了展开的节点,值为所有已知的展开节点的 key 组成的数组;
  2. title 为节点标题,可以是一个字符串或 HTML 标签。

使用说明

基本属性

  • treeData:接受一个对象数组,对象必须包含 titlekey 两个属性,其中 key 是必须的。支持通过 slots 具体渲染每个节点,可自定义节点 UI。

  • checkable:添加这个属性可以开启树形节点的选择框。用访问 checkedKeys 接口来获取全选和半选的节点 keys。

  • selectable:添加这个属性可以使树形节点可选择。用访问 selectedKeys 接口来获取选中节点的 keys。

  • expandedKeys:设置展开指定的树形节点,只控制(非受控)可展开的节点。(默认受控,值通过 defaultExpandedKeys 设置)

  • defaultExpandedKeys:设置默认展开的某个树形节点,只在初始渲染时有效。可以是一个字符串数组或函数返回字符串数组,数组元素是树节点的 key 值。

  • autoExpandParent:是否自动展开父节点。

  • defaultExpandAll:默认展开全部树节点。

  • showIcon:是否展示 TreeNode 节点前的图标,没有默认样式,如需展示更多图标可以自行添加 style。

  • switcherIcon:自定义 switcher 图标,同时也接受一个数组,分别为关闭和打开状态

  • showLine:是否展示 TreeNode 之间的虚线。

  • draggable:开启上传并启动拖拽功能。

  • blockNode:节点是否独占一行,(默认开启,需要设置具体数值的时候使用)。

  • virtualListProps:懒加载的虚拟树(只在大数据量情况下使用)。

常用事件

  • onSelect: 选择树节点时触发,参数为 (selectedKeys, e:{selected: bool, selectedNodes, node, event}),其中 selectedKeys 为当前被选中节点的 key 的数组,selectedNodes 为当前被选中的节点的节点实例的引用的数组。

  • onCheck: 节点选框选中或取消时触发,返回选中节点的 keys。

  • onExpand: 展开/收起节点时触发,返回当前节点的 key,布尔值 expanded 和结合 excludeExpandEvents 的事件 Flags。

  • onLoad: 节点被加载时触发。

  • onRightClick: 右键单击节点时触发,返回 rightClickNode 和事件对象。

示例说明

示例1:默认展开子节点和半选中节点的树形控件

<template>
  <a-tree
    :tree-data="treeData"
    show-icon
    checkable
    :checked-keys="checkedKeys"
    :default-expanded-keys="['0-0', '0-0-0']"
    @check="onCheck"
  >
    <template slot="title" slot-scope="{ title }">
      <a :title="title">{{ title }}</a>
    </template>
  </a-tree>
</template>

<script>
export default {
  data() {
    return {
      treeData: [
        {
          title: '父节点1',
          key: '0-0',
          children: [
            {
              title: '父节点1-1',
              key: '0-0-0',
              children: [
                {
                  title: '子节点1',
                  key: '0-0-0-0',
                  disableCheckbox: true
                },
                {
                  title: '子节点2',
                  key: '0-0-0-1'
                }
              ]
            },
            {
              title: '父节点1-2',
              key: '0-0-1',
              disableCheckbox: true
            }
          ]
        }
      ],
      checkedKeys: ['0-0-0']
    };
  },
  methods: {
    onCheck(checkedKeys) {
      console.log('onCheck', checkedKeys);
      this.checkedKeys = checkedKeys;
    }
  }
};
</script>

根据示例代码,当前共有3个节点,其中父节点1默认展开,子节点1被半选中。

示例2:自定义树形节点内容

<template>
  <a-tree :tree-data="treeData" :default-expanded-keys="['0-0']">
    <template slot="title" slot-scope="{ title }">
      <div>{{ title }}</div>
    </template>
  </a-tree>
</template>

<script>
export default {
  data() {
    return {
      treeData: [
        {
          title: '父节点1',
          key: '0-0',
          children: [
            {
              title: '子节点1',
              key: '0-0-0'
            },
            {
              title: '子节点2',
              key: '0-0-1'
            }
          ]
        }
      ]
    };
  }
};
</script>

根据示例代码,每个节点信息的 title 都是字符串类型,并且使用了 div 标签包裹,代表自定义节点内容。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Ant Design of Vue的树形控件Tree的使用及说明 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • 全面理解java中的构造方法以及this关键字的用法

    全面理解Java中的构造方法 在Java中,构造方法是一种特殊的方法,用于创建对象并初始化对象的成员变量。构造方法的名称必须与类名称相同,并且不能有返回值类型,包括void返回类型。 构造方法的类型 Java中的构造方法分为两种类型: 默认构造方法 如果一个类没有定义任何构造方法,那么Java会给这个类添加一个默认的构造方法,默认构造方法是没有参数的。 带参…

    other 2023年6月26日
    00
  • GTA5兄弟有难任务无法上卡车怎么解决_上卡车跳出的快速解决方法

    Title: GTA5兄弟有难任务无法上卡车怎么解决 问题现象描述 在GTA5游戏的“兄弟有难”任务中,玩家遇到了上不去卡车的问题。当玩家站在卡车旁边并尝试按下“F”键上车时,角色会走到卡车上方但无法上车,此时玩家会被提示按下“Shift + F”键可以进入卡车,但这样操作时,角色只会瞬间跳上并立即从卡车顶部跳下来。 解决方法 这个问题是由于游戏在处理角色与…

    other 2023年6月27日
    00
  • ps怎么将32位转换成16位? ps将文档从32位转换到16位的技巧

    将32位转换成16位的技巧 在Photoshop(以下简称PS)中,将32位图像转换为16位图像可以帮助减小文件大小并提高处理速度。下面是一些将32位图像转换为16位图像的技巧和步骤。 步骤1:打开32位图像 首先,打开你想要转换的32位图像。在PS中,点击菜单栏的“文件”(File),然后选择“打开”(Open)。浏览并选择你的32位图像文件,然后点击“打…

    other 2023年7月28日
    00
  • 关于android:防止使用shouldinterceptrequest加载数据

    以下是关于“关于Android:防止使用shouldInterceptRequest加载数据”的完整攻略,包含两个示例说明。 Android中的shouldInterceptRequest 在Android中,shouldInterceptRequest是一个WebViewClient类的方法,它允许我们拦截WebView加载的请求并返回自定义的响应。但是,…

    other 2023年5月9日
    00
  • Eclipse中安装反编译工具Fernflower的方法(Enhanced Class Decompiler)

    下面是Eclipse中安装反编译工具Fernflower的方法(Enhanced Class Decompiler)的详细攻略。 概述 我们需要在Eclipse中安装Fernflower(Enhanced Class Decompiler)。Fernflower是一个开源的、独立的、Java字节码反编译器,它可以将Java字节码反编译为等效的Java源代码。…

    other 2023年6月26日
    00
  • js自定义Tab选项卡效果

    来一份完整的 “JS 自定义 Tab 选项卡效果” 的攻略吧。 1. 确定需求及基本思路 在实现一个自定义的 Tab 选项卡效果时,我们需要先理解需求和基本思路。 需求 根据用户的操作显示不同的内容区域; 点击不同的选项卡可以显示对应的内容区域; 选项卡可以自定义样式(如背景颜色、字体颜色等)。 基本思路 使用 HTML 和 CSS 构建选项卡和内容区域; …

    other 2023年6月25日
    00
  • springboot+layui开发

    Spring Boot + Layui 开发攻略 Spring Boot是一个快速开发框架,Layui是一个轻量级的前端UI框架。本攻略将详细介绍如何使用 Boot 和 Layui 进行 Web 应用程序的开发。 环境搭建 在开始开发之前,我们需要安装 Java 和 Maven。可以使用命令在 Ubuntu 系统中安装 Java 和 Maven: sudo …

    other 2023年5月9日
    00
  • AI创建可爱的卡通蓝色小怪物教程

    很抱歉,作为一款文本模型,我无法提供图文教程。但是,我可以为您提供一些步骤和示例代码来创建可爱的卡通蓝色小怪物。请注意,以下示例代码仅为参考,您可以根据自己的需求进行定制和优化。 步骤1:准备工作 首先,您需要选择一个绘图工具,如Adobe Illustrator或Sketch,来绘制小怪物的外观。您可以使用基本的形状和颜色来创建一个简单而可爱的蓝色小怪物。…

    other 2023年10月15日
    00
合作推广
合作推广
分享本页
返回顶部