• el-tree树组件的封装 (运用递归对接口返回当前菜单数据为对象处理)


    有时候在写树组件时,接口返回数据并不是我们element-ui中所预想的那样:
    期望值:
    data: [{
    label: '一级 1',
    children: [{
    label: '二级 1-1',
    children: [{
    label: '三级 1-1-1'
    }]
    }]
    }]
    显示中:
    data: [{
    current: {nodeName:'一级1',id:'01'}, // 针对当前菜单数据 是对象的处理
    children: [{
    current:{nodeName:'二级菜单',id:'02'}
    children: [{
    current;{nodeName:'三级菜单',id:'03'}
    }]
    }]
    }]


    tree树注意的两个点,
    1.props配置选项
    2.通过vuex调取的接口的数据处理
    <el-tree
      :expand-on-click-node="false" //点击箭头收缩与展开
    :data="data"
    :props="defaultProps"
    class="filter-tree"
    @node-click="handleNodeClick"
    />
    1.props配置选项:配置接口返回数据所对应的字段可减少vuex中对数据的处理
    defaultProps: {
    children: 'children',
    label: 'nodeName',
    id: 'id',
    url: 'url'
    }
    2.组件可接收父组件传入的在computed中进行处理
    data: function() {
    if (this.parentsData && this.parentData.length > 0) {
    return this.dataChange(this.parentData); // dataChange() 方法为递归函数可放在methods中
    } else {
    return [];
    }
    }

    methods: // 递归函数的处理是根据接口返回数据进行使用
    dataChange(data) {
    data.map(item => {
    item.name = item.current.nodeName || '';
    item.id = item.current.id || '';
    if (item.children.length) {
    this.menuChange(item.children);
    }
    });
    return data;
    }

    handleNodeClick(data) { // 被点击
    this.$emit('handleNodedClick', data);
    },
    
    
  • 相关阅读:
    Finder那点事
    mysql基础综述(四)
    【算法编程】过河问题
    CodeForces 7D Palindrome Degree 字符串hash
    语音信号短时域分析之预处理(三)
    sqlite学习笔记7:C语言中使用sqlite之打开数据库
    cpu真实占用率检測工具
    Mediator Design Pattern 中介者模式
    POJ-3984-迷宫问题-BFS(广搜)-手写队列
    HDU 4858 项目管理
  • 原文地址:https://www.cnblogs.com/media/p/14397055.html
Copyright © 2020-2023  润新知