element-ui树结构懒加载

在实际项目中,往往树结构数据量较大,这时树节点必须懒加载

element-ui树的懒加载:

<div style="width:100%;height:420px;overflow: auto;">
                        <el-tree lazy :load="getOrgList" :props="defaultProps" highlight-current @node-click="handleNodeClick">
                        </el-tree>
</div>

js代码如下:

defaultProps: {
                    children: "children",
                    label: "name"
                },

树节点形式为:

 [
        {
            "id": "1",
            "name": "国家电网",
            "status": null,
            "isCheck": null,
            "children": []
        }
    ]

getOrgList方法如下:

/**
             * 懒加载树获取组织机构子节点
             * element-tree使用方法
             * @param node:当前点击节点信息
             * @param resolve:传递参数方法
             * */
            getOrgList(node,resolve) {
                /*this.$http.get(`${process.env.NODE_ENV}/admin/org/selectall`)
                    .then((response) => {
                        this.data2 = response.data.data;
                    })
                    .catch(function (error) {
                        console.log(error);
                    });
*/
                let self = this;
                console.log(node);
                if(node.level == 0){
                    self.$http.get(`${process.env.NODE_ENV}/admin/org/selectall`).then(res => {
                        let treeData = []
                        res.data.data.forEach(e => {
                            treeData.push(e)
                        })
                        resolve(treeData);
                    }).catch(res => {
                        resolve([]);
                    })
                }else{
                    console.log("当前节点id值为:"+node.data.id)
                    self.$http.get(`${process.env.NODE_ENV}/admin/org/selectall/${node.data.id}`).then(res => {
                        let myList = [];
                        res.data.data.forEach(e => {
                            myList.push(e)
                        })
                        resolve(myList);
                    }).catch(res => {
                        resolve([]);
                    })

                }

            },

handleNodeClick方法如下:

                        // 点击树
            handleNodeClick(data) {
                console.log("点击树节点");
                console.log(data);
                this.clickTree = data;
            },                    

原文地址:https://www.cnblogs.com/yuwenjing0727/p/9817911.html

时间: 2024-10-10 01:45:07

element-ui树结构懒加载的相关文章

iOS开发UI篇—懒加载

iOS开发UI篇—懒加载 1.懒加载基本 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其get方法. 注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化 2.使用懒加载的好处: (1)不必将创建对象的代码全部写在viewDidLoad方法中,代码的可读性更强 (2)每个控件的getter方法中分别负责各自的实例化处理,代码彼此之间的独立性强,松耦合 3.代码示例 1 // 2 // YYViewController.m 3

iOS开发UI基础—懒加载

iOS开发UI基础-懒加载 1.懒加载基本 懒加载--也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其get方法. 注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化 2.使用懒加载的好处: (1)不必将创建对象的代码全部写在viewDidLoad方法中,代码的可读性更强 (2)每个控件的getter方法中分别负责各自的实例化处理,代码彼此之间的独立性强,松耦合 3.代码示例 1 // 2 // YYViewController.m

iOS开发UI中懒加载的使用方法

1.懒加载基本 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其getter方法.说的通俗一点,就是在开发中,当程序中需要利用的资源时.在程序启动的时候不加载资源,只有在运行当需要一些资源时,再去加载这些资源. 我们知道iOS设备的内存有限,如果在程序在启动后就一次性加载将来会用到的所有资源,那么就有可能会耗尽iOS设备的内存.这些资源例如大量数据,图片,音频等等,所以我们在使用懒加载的时候一定要注意先判断是否已经有了,如果没有那么再去进行实例化 2.使

iOS开发UI篇—懒加载(转)

1.懒加载基本 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其get方法. 注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化 2.使用懒加载的好处: (1)不必将创建对象的代码全部写在viewDidLoad方法中,代码的可读性更强 (2)每个控件的getter方法中分别负责各自的实例化处理,代码彼此之间的独立性强,松耦合 3.代码示例 1 // 2 // YYViewController.m 3 // 03-图片浏览器初

UI基础——懒加载,plist文件,字典转模型,自定义view

一.懒加载 只有使用到了商品数组才会创建数组 保证数组只会被创建一次 只要能够保证数组在使用时才创建, 并且只会创建一次, 那么我们就称之为懒加载 lazy - (void)viewDidLoad 控制器的view创建完毕就会调用,该方法只会调用一次 @property (nonatomic, strong)NSArray *shops; - (void)viewDidLoad { [super viewDidLoad]; if (self.shops == nil) { NSLog(@"创建商

Vue+Element中Table懒加载,新增、删除操作后手动更新

https://blog.csdn.net/qq_34817440/article/details/96482818 this.$set(this.$refs.tableDom.store.states.lazyTreeNodeMap, id, []); 原文地址:https://www.cnblogs.com/zhaoyun4122/p/12134174.html

element中树形数据与懒加载实现全部展开和全部收起

element中属性懒加载数据 default-expand-all属性::是否默认展开所有行,当 Table 包含展开行存在或者为树形表格时有效 如果在表格头上加上一个按钮实现全部展开与收起 类似如图这种  默认是[全部展开]按钮,点击后,树状列表下所有数据为展示,按钮变为[全部收起]:点击[全部收起]时,树状列表下所有数据为收起状态,即返回默认状 如果动态设置控制default-expand-all树状图是不发生变化的 也就是不起作用. 解决方法:上代码: <template> <d

vue+element ui项目总结点(一)select、Cascader级联选择器、encodeURI、decodeURI转码解码、一级mockjs用法、路由懒加载三种方式

不多说上代码: <template> <div class="hello"> <h1>{{ msg }}</h1> <p>Element UI简单Cascader级联选择器使用</p> <el-cascader :options='options' v-model="selectedOptions" @change="handleChange"> </el-

关于Element UI tree组件 懒加载的更新操作

近期根据需求,要做一个懒加载的组织树,并且可以编辑组织树.但是编辑了之后无法进行实时更新. 一开始想到了很多解决方案,也在网上参考了很多方案,但是都又种种不足. 所以我去看了elementUI的tree组件的懒加载方法的源代码 Node.prototype.loadData = function loadData(callback) { var _this5 = this; var defaultProps = arguments.length > 1 && arguments[1]