广告
返回顶部
首页 > 资讯 > 精选 >怎么在Vue中使用Element实现一个树列表组件
  • 484
分享到

怎么在Vue中使用Element实现一个树列表组件

2023-06-15 01:06:51 484人浏览 薄情痞子
摘要

怎么在Vue中使用Element实现一个树列表组件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、常规树列表控件的使用众所周知,一般界面很多情况涉及到树列表的处理,如类型

怎么在Vue中使用Element实现一个树列表组件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

1、常规树列表控件的使用

众所周知,一般界面很多情况涉及到树列表的处理,如类型展示,如果是一层的,可以用下拉列表代替,如果是多个层级的,采用树控件展示会更加直观。

在Element里面也有一个el-tree的控件,如下所示,这里主要对它的各种属性和方法进行介绍。

怎么在Vue中使用Element实现一个树列表组件

简单的代码如下所示

<el-tree :data="data"  @node-click="handleNodeClick"></el-tree>

主要在script部分里面指定它的data数据,以及单击节点的事件处理,结合卡片控件的展示,我们可以把树放在其中进行展示

怎么在Vue中使用Element实现一个树列表组件

界面代码如下所示,通过default-expand-all 可以设置全部展开,icon-class 指定节点图标(也可以默认不指定)

<el-card class="box-card">          <div slot="header" class="clearfix">            <span>树列表</span>            <el-button  type="text">操作按钮</el-button>          </div>          <div>            <el-tree                            :data="treedata"              node-key="id"              default-expand-all              icon-class="el-icon-price-tag"              highlight-current              @node-click="handleNodeClick"            >              <span slot-scope="{ node, data }" class="custom-tree-node">                <span>                  <i :class="node.icon ? node.icon : 'el-icon-price-tag'" />                  {{ node.label }}                                 </span>              </span>            </el-tree>          </div>        </el-card>

其中界面里面,我们通过class="custom-tree-node",来指定树列表的展现内容,可以加入图标等信息

而在script里面,定义了一个treedata的属性

// 初始化树列表      treedata: [        {          label: '一级 1',          id: '1',          children: [{            id: '1-1',            label: '二级 1-1',            children: [{              label: '三级 1-1-1',              id: '1-1-1'            }, {              label: '三级 1-1-2',              id: '1-1-2'            }, {              label: '三级 1-1-3',              id: '1-1-3'            }]          }]        }      ]

如果设置有选择框,得到界面如下所示。

怎么在Vue中使用Element实现一个树列表组件

主要设置show-checkbox 和@check-change="handleCheckChange" 即可。

界面代码如下所示

<el-tree    :data="treedata"  node-key="id"  default-expand-all  highlight-current  show-checkbox  :default-checked-keys="['1-1-1']"  @node-click="handleNodeClick"  @check-change="handleCheckChange">  <span slot-scope="{ node, data }" class="custom-tree-node">    <span>      <i :class="node.icon ? node.icon : 'el-icon-price-tag'" />      {{ node.label }}         </span>  </span></el-tree>

而对于树列表,可以进行一个过滤处理操作,如下界面所示。

怎么在Vue中使用Element实现一个树列表组件

在内容区增加一个input的文本框进行过滤处理,并绑定对应的属性变量

<el-input  v-model="filterText"  placeholder="输入关键字进行过滤"  clearable  prefix-icon="el-icon-search"/>

树列表控件需要增加过滤函数绑定:filter-node-method="filterNode",如下代码所示。

<el-tree  ref="tree"  class="filter-tree"    :data="treedata"  node-key="id"  default-expand-all  highlight-current  show-checkbox  :filter-node-method="filterNode"  @check-change="handleCheckChange"  @node-click="handleNodeClick">  <span slot-scope="{ node, data }" class="custom-tree-node">    <span>      <i :class="node.icon ? node.icon : 'el-icon-price-tag'" />      {{ node.label }}         </span>  </span></el-tree>

script的处理代码如下所示,需要watch过滤的绑定值,变化就进行过滤处理。

怎么在Vue中使用Element实现一个树列表组件

为了在列表结合中进行快速的过滤,我们可以在上次介绍的列表界面里面增加一个树列表的快速查询处理。如下界面所示。

怎么在Vue中使用Element实现一个树列表组件

这里列表里面增加了一个第三方组件splitpanes,用来划分区块展示,而且可以拖动,非常不错,地址是:

https://GitHub.com/antoniandre/splitpanes

这个组件的Demo展示地址如下所示:Https://antoniandre.github.io/splitpanes

效果大概如下所示

怎么在Vue中使用Element实现一个树列表组件

npm安装如下所示

npm i --S splitpanes

安装成功后,然后在vue文件的script部分里面引入即可

import { Splitpanes, Pane } from 'splitpanes'import 'splitpanes/dist/splitpanes.CSS'

它的使用代码也很简单

<splitpanes >  <pane min-size="20">1</pane>  <pane>    <splitpanes horizontal>      <pane>2</pane>      <pane>3</pane>      <pane>4<pane>    </splitpanes>  </pane>  <pane>5</pane></splitpanes>

我的列表界面使用了两个Panel即可实现左侧树的展示,和右侧常规列表查询的处理。

怎么在Vue中使用Element实现一个树列表组件

2、下拉框树列表的处理

除了常规的树列表展示内容外,我们也需要一个在下拉列表中展示树内容的界面组件。

这里又得引入一个第三方的界面组件,因此Element的Select组件不支持树列表。

GitHub地址:https://github.com/riophae/vue-treeselect

官网地址:https://vue-treeselect.js.org/

NPM安装:

npm install --save @riophae/vue-treeselect

界面代码如下所示。

<template>  <div id="app">    <treeselect v-model="value" :multiple="true" :options="options" />  </div></template>

这里的value就是选中的集合,options则是树列表的节点数据。

<script>  // import the component  import Treeselect from '@riophae/vue-treeselect'  // import the styles  import '@riophae/vue-treeselect/dist/vue-treeselect.css'  export default {    // reGISter the component    components: { Treeselect },    data() {      return {        // define the default value        value: null,        // define options        options: [ {          id: 'a',          label: 'a',          children: [ {            id: 'aa',            label: 'aa',          }, {            id: 'ab',            label: 'ab',          } ],        }, {          id: 'b',          label: 'b',        }, {          id: 'c',          label: 'c',        } ],      }    },  }</script>

我的测试界面代码如下所示

<div >            <!--                v-model 绑定选中的集合                options 树节点数据                 defaultExpandLevel 展开层次,Infinity为所有                 flat 为子节点不影响父节点,不关联             -->            <treeselect              v-model="value"              :options="treedata"              :multiple="true"              :flat="true"              :default-expand-level="Infinity"              :open-on-click="true"              :open-on-focus="true"              clearable              :max-height="200"            />          </div>
<script>// import vue-treeselect componentimport Treeselect from '@riophae/vue-treeselect'// import the stylesimport '@riophae/vue-treeselect/dist/vue-treeselect.css'export default {  name: 'Tree',  components: { Treeselect },  data() {    return {      // 过滤条件      filterText: '',      // 初始化树列表      treedata: [        {          label: '一级 1',          id: '1',          children: [{            id: '1-1',            label: '二级 1-1',            children: [{              label: '三级 1-1-1',              id: '1-1-1'            }, {              label: '三级 1-1-2',              id: '1-1-2'            }, {              label: '三级 1-1-3',              id: '1-1-3'            }]          }]        }      ],      value: ['1-1-2']    }  },................}</script>

来一张几个树列表一起的对比展示界面。

怎么在Vue中使用Element实现一个树列表组件

vue是什么

Vue是一套用于构建用户界面的渐进式javascript框架,Vue与其它大型框架的区别是,使用Vue可以自底向上逐层应用,其核心库只关注视图层,方便与第三方库和项目整合,且使用Vue可以采用单文件组件和Vue生态系统支持的库开发复杂的单页应用。

关于怎么在Vue中使用Element实现一个树列表组件问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网精选频道了解更多相关知识。

--结束END--

本文标题: 怎么在Vue中使用Element实现一个树列表组件

本文链接: https://www.lsjlt.com/news/276540.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在Vue中使用Element实现一个树列表组件
    怎么在Vue中使用Element实现一个树列表组件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、常规树列表控件的使用众所周知,一般界面很多情况涉及到树列表的处理,如类型...
    99+
    2023-06-15
  • Vue中怎么实现一个树形组件
    Vue中怎么实现一个树形组件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。具体如下:使用SemanticUI和vue做一个me...
    99+
    2022-10-19
  • VUE中element-ui如何实现一个复用Table组件
    小编给大家分享一下VUE中element-ui如何实现一个复用Table组件,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!步骤一先来个基本的表格展示官例的tableDatatableDat...
    99+
    2022-10-19
  • 怎么在Vue中使用Canvas实现一个弹幕组件
    本篇文章为大家展示了怎么在Vue中使用Canvas实现一个弹幕组件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。功能介绍支持循环弹幕弹幕不重叠支持选择轨道数支持弹幕发送使用npm i vue-bar...
    99+
    2023-06-09
  • Vue中怎么实现一个表情输入组件
    这篇文章将为大家详细讲解有关Vue中怎么实现一个表情输入组件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。html区域<template> &n...
    99+
    2022-10-19
  • vue如何使用递归组件实现一个树形控件
    这篇文章主要介绍“vue如何使用递归组件实现一个树形控件”,在日常操作中,相信很多人在vue如何使用递归组件实现一个树形控件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue如何使用递归组件实现一个树形控件...
    99+
    2023-07-04
  • 怎么在Android中利用ItemDecoration 实现一个分组索引列表
    怎么在Android中利用ItemDecoration 实现一个分组索引列表?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。分组 GroupHeader分割线SideBar前两个...
    99+
    2023-05-30
    android itemdecoration
  • Vue中怎么实现一个无限级联树形表格
    这篇文章给大家介绍Vue中怎么实现一个无限级联树形表格,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。资源JavaScript框架:vue.jsUI框架:Element UI源码这里需要...
    99+
    2022-10-19
  • Android 开发中怎么利用TreeView实现一个多级树形列表
    今天就跟大家聊聊有关Android 开发中怎么利用TreeView实现一个多级树形列表,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。具体的实现思路参考下面的项目结构和具体代码:Ele...
    99+
    2023-05-31
    android treeview 多级树形列表
  • Vue中怎么实现一个单文件组件
    这期内容当中小编将会给大家带来有关Vue中怎么实现一个单文件组件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。背景相信大家在使用Vue开发项目时,基本都是以单文件组件的形...
    99+
    2022-10-19
  • 怎么使用vue递归实现树形组件
    这篇文章主要介绍“怎么使用vue递归实现树形组件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用vue递归实现树形组件”文章能帮助大家解决问题。1. 先来看一下效果:2. 代码部分 (myTr...
    99+
    2023-07-02
  • vue-cli3中怎么实现一个fullpage组件
    本篇文章为大家展示了vue-cli3中怎么实现一个fullpage组件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。准备$ npm i ...
    99+
    2022-10-19
  • vue中怎么实现一个翻页组件
    这篇文章将为大家详细讲解有关vue中怎么实现一个翻页组件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。首先,翻页组件(以下称“pager组件”)一般拥有的元...
    99+
    2022-10-19
  • Vue中怎么实现一个异步组件
    今天就跟大家聊聊有关Vue中怎么实现一个异步组件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。index.html<!DOCTYPE ...
    99+
    2022-10-19
  • vue.js中怎么利用element-ui实现一个菜单树形结构
    这篇文章将为大家详细讲解有关vue.js中怎么利用element-ui实现一个菜单树形结构,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。后台返回的数据格式是...
    99+
    2022-10-19
  • 微信小程序中怎么实现一个固定表头、列表格组件
    微信小程序中怎么实现一个固定表头、列表格组件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。实现思路开始想用三个ScrollView去实现滚动联动,固定表头、列的话,表格内容...
    99+
    2023-06-20
  • 怎么使用Vue组件tree实现树形菜单
    本篇内容主要讲解“怎么使用Vue组件tree实现树形菜单”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Vue组件tree实现树形菜单”吧!vue 编写的树形菜单,小巧实用,支持vue1....
    99+
    2023-07-04
  • vue中怎么实现一个模态框组件
    这期内容当中小编将会给大家带来有关vue中怎么实现一个模态框组件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。组件结构<template> &nbs...
    99+
    2022-10-19
  • vue-star中怎么实现一个评星组件
    vue-star中怎么实现一个评星组件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。star文件夹下建立Star.vue,及相关的图片信息...
    99+
    2022-10-19
  • Vue中怎么实现一个全局loading组件
    Vue中怎么实现一个全局loading组件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。loading.js:import '...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作