elementUI Tree 树形控件的官方使用文档

ElementUI Tree 树形控件是基于Vue.js的一款可折叠的树形菜单组件,用于显示有层次结构的数据。以下是官方使用文档的完整攻略:

树形控件的基本使用

可以使用<el-tree> 标签将树形控件引入到页面中,并传入相应的数据。 其中需要传入的数据包括dataprops

以下是一个简单的示例:

<template>
  <el-tree :data="treeData" :props="defaultProps"></el-tree>
</template>
<script>
export default {
  data() {
    return {
      defaultProps: {
        children: 'children', 
        label: 'label'
      },
      treeData: [
        {
          label: '一级 1',
          children: [
            {
              label: '二级 1-1',
              children: [
                {
                  label: '三级 1-1-1'
                }
              ]
            }
          ]
        }
      ]
    }
  }
}
</script>
  • :data 传递树形结构的数据
  • :props 配置节点字段,用于显示节点数据

选项配置

Props

可以通过 props 属性自定义显示的 key 值和菜单节点属性的 key 值。

defaultProps 属性中可以配置以下内容:

  • children: 指定子节点属性
  • label: 指定显示属性
  • disabled: 指定禁用属性
  • isLeaf: 指定节点是否为叶子节点属性

示例如下:

<template>
  <el-tree :data="treeData" :props="customProps"></el-tree>
</template>
<script>
export default {
  data() {
    return {
      customProps: {
        children: 'childs',
        label: 'title',
        disabled: 'isDisabled',
        isLeaf: 'isLeaf'
      },
      treeData: [
        {
          title: '一级 1',
          childs: [
            {
              title: '二级 1-1',
              childs: [
                {
                  title: '三级 1-1-1',
                  isDisabled: true
                }
              ]
            }
          ]
        }
      ]
    }
  }
}
</script>

Tree Attributes

可以通过 tree-attributes 属性设置树的属性。

以下是一些支持的属性:

  • indent: 单个缩进的大小
  • show-checkbox: 是否显示 checkbox
  • default-expand-all: 是否默认展开所有节点
  • expand-on-click-node: 是否点击节点展开子节点

示例如下:

<template>
  <el-tree :data="treeData" :props="customProps" :tree-attributes="customAttributes"></el-tree>
</template>
<script>
export default {
  data() {
    return {
      customProps: {
        children: 'childs',
        label: 'title'
      },
      customAttributes: {
        'default-expand-all': true,
        'show-checkbox': true,
        'expand-on-click-node': false
      },
      treeData: [
        {
          title: '一级 1',
          childs: [
            {
              title: '二级 1-1',
              childs: [
                {
                  title: '三级 1-1-1'
                }
              ]
            }
          ]
        }
      ]
    }
  }
}
</script>

示例

勾选后获取拥有选中状态节点的 Key 值

<template>
  <el-tree
    :data="treeData"
    :props="defaultProps"
    :checked-keys="checkedKeys"
    @check="handleCheckChange"
  ></el-tree>
</template>
<script>
export default {
  data() {
    return {
      treeData: [{
        id: 1,
        label: '一级 1',
        children: [{
          id: 11,
          label: '二级 1-1',
          children: [{
            id: 111,
            label: '三级 1-1-1'
          }]
        }, {
          id: 12,
          label: '二级 1-2',
          children: [{
            id: 121,
            label: '三级 1-2-1'
          }]
        }]
      }],
      defaultProps: {
        children: 'children',
        label: 'label'
      },
      checkedKeys: []
    }
  },
  methods: {
    handleCheckChange(checkedKeys) {
      this.checkedKeys = checkedKeys;
    }
  }
}
</script>

添加自定义展开图标

<template>
  <el-tree
    :data="treeData"
    :props="defaultProps"
    node-key="id"
    :render-content="renderContent"
  ></el-tree>
</template>
<script>
export default {
  data() {
    return {
      treeData: [{
        id: 1,
        label: '一级 1',
        children: [{
          id: 11,
          label: '二级 1-1',
          children: [{
            id: 111,
            label: '三级 1-1-1'
          }]
        }]
      }],
      defaultProps: {
        children: 'children',
        label: 'label'
      }
    }
  },
  methods: {
    renderContent(h, { node, data }) {
      return (
        <span>
          <span>{node.label}</span>
          {node.isLeaf ? '' : <span class="expand-icon el-icon-plus" onClick={() => this.$refs.tree.$emit('node-expand', data)}></span>}
        </span>
      )
    }
  }
}
</script>

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:elementUI Tree 树形控件的官方使用文档 - Python技术站

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

相关文章

  • js原生appendChild的bug解决心得分享

    下面我将详细讲解“js原生appendChild的bug解决心得分享”的完整攻略,过程中包含两条示例说明。 1. 什么是js原生appendChild的bug js原生appendChild方法是向某个元素的最后一个子节点后面追加新的子节点,常用于动态添加DOM元素。但是在某些场景下,这个方法可能会出现意外的结果,即将原本应该追加到最后一个子节点后面的元素,…

    JavaScript 2023年6月11日
    00
  • 微信小程序返回上一页的各种方法实例

    微信小程序返回上一页的各种方法实例 在微信小程序中,返回上一页是开发过程中经常会涉及到的一个需求。本文将详细讲解微信小程序中返回上一页的各种方法,并提供两个示例说明。 方法一:调用微信提供的API 微信小程序提供了一个 wx.navigateBack() 方法用于返回上一页,该方法可接受一个参数,表示返回的层数,默认值为1,即返回上一页。 示例代码如下: w…

    JavaScript 2023年6月11日
    00
  • JS实现使用POST方式发送请求

    JS实现使用POST方式发送请求的步骤如下: 创建一个XMLHttpRequest对象 在发送POST请求之前,需要先创建一个XMLHttpRequest对象。可以使用以下代码创建: let xhr = new XMLHttpRequest(); 设置请求的处理函数 在发送实际的请求之前,需要先设置请求的处理函数。这些函数在请求的不同阶段会被自动调用。可以使…

    JavaScript 2023年5月27日
    00
  • JavaScript闭包与作用域链实例分析

    针对这个主题,我们可以分下面几个部分来讲解: JavaScript作用域和作用域链的概念和原理; 什么是Javascript闭包,它的定义和使用场景; 两个JavaScript闭包的实例分析,来帮助大家更好理解。 作用域和作用域链 JavaScript是一种基于作用域的编程语言。在JavaScript中,每个函数都有它的作用域。因此,在定义一个变量时,它的作…

    JavaScript 2023年5月28日
    00
  • 详解Typescript 严格模式有多严格

    详解Typescript 严格模式有多严格 简介 Typescript 自2.3版本开始引入了“严格模式”(Strict mode),它通过加强类型检查、禁用一些不安全的语法和行为等手段来让代码更规范、更健壮,从而减少意外的运行时错误。 在这篇文章中,我们将详细讲解 Typescript 严格模式的多个方面,并给出一些示例代码来进一步说明各个模式之间的区别。…

    JavaScript 2023年6月10日
    00
  • 解析前端面试题2019年小米工程师面试题(附答案)

    这里给出详细讲解“解析前端面试题2019年小米工程师面试题(附答案)”的完整攻略。 前言 本文将对2019年小米工程师面试题进行分析和解答,其中涉及到的知识点基本全面,包括ES6、CSS、HTTP等内容。本文旨在帮助读者更深入理解前端知识,提高应对面试的能力。 攻略 下面按照题目出现顺序,逐个进行解答。 1. 给出题目vue的几种优化 该题目主要考察了对Vu…

    JavaScript 2023年5月19日
    00
  • 浏览器控制台报错Failed to load module script:解决方法

    针对浏览器控制台报错“Failed to load module script”这个问题,可以通过以下步骤进行解决: 1. 检查网络连接 首先需要确保自己的网络连接正常,这个问题可能是由于网络不稳定或者无法连接到服务器导致的。可以尝试重新连接网络或者使用其他网络连接方式,重新加载页面查看是否能够解决问题。 2. 检查引入模块的路径 如果网络连接正常,那么可能…

    JavaScript 2023年5月18日
    00
  • javascript如何定义对象数组

    JavaScript 是一种面向对象的编程语言,支持使用对象进行编程。对象数组则是在 JavaScript 中一种常用的数据结构,通常使用对象数组存储一组相关的数据。定义对象数组可以通过以下步骤进行: 步骤一:定义对象的属性 首先,需要定义对象的属性。对象属性是一个键值对,其中“键”表示属性的名称,“值”则是属性的值。可以使用常规的 JavaScript 对…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部