el-tree 懒加载 loadNode

el-tree 是 Element UI 提供的树形组件,其懒加载功能通过 loadNode 方法实现,可以在用户展开节点时动态加载子节点数据,避免一次性加载大量数据。下面介绍 loadNode 的具体用法和示例。

基本用法

loadNodeel-tree 的一个重要属性,用于定义节点加载的回调函数。当用户展开一个节点时,会触发该回调并传入当前节点的信息,开发者可根据这些信息异步加载子节点数据。

核心参数
  • node:当前点击的节点对象,包含节点的层级、数据等信息。
  • resolve:回调函数,用于将加载的子节点数据传递给树组件。

【完整代码】

html 复制代码
<template>
  <el-tree
    :load="loadNode"
    lazy
    :props="treeProps"
    @node-click="handleNodeClick">
  </el-tree>
</template>

<script>
export default {
  data() {
    return {
      treeProps: {
        label: 'name', // 指定节点标签为数据中的 name 字段
        children: 'children' // 指定子节点为数据中的 children 字段
      }
    };
  },
  methods: {
    // 懒加载回调函数
    loadNode(node, resolve) {
      // 根节点(node.level === 0)通常是初始节点
      if (node.level === 0) {
        // 模拟异步加载根节点数据
        setTimeout(() => {
          const data = [
            { id: 1, name: '节点1', leaf: false },
            { id: 2, name: '节点2', leaf: false }
          ];
          resolve(data); // 将数据传递给树组件
        }, 500);
      } else {
        // 非根节点,根据父节点加载子节点
        setTimeout(() => {
          // 模拟根据父节点ID加载子节点数据
          const childData = [
            { id: `${node.data.id}-1`, name: `子节点1-${node.data.id}`, leaf: true },
            { id: `${node.data.id}-2`, name: `子节点2-${node.data.id}`, leaf: true }
          ];
          resolve(childData);
        }, 500);
      }
    },
    // 节点点击事件处理
    handleNodeClick(data) {
      console.log('点击节点:', data);
    }
  }
};
</script>
相关推荐
Bella_a13 分钟前
挑战100道前端面试题--Vue2和Vue3响应式原理的核心区别
vue.js
薄雾晚晴13 分钟前
大屏开发实战:用 autofit.js 实现 1920*1080 设计稿完美自适应,告别分辨率变形
前端·javascript·vue.js
yannick_liu15 分钟前
vue项目打包后,自动部署到服务器上面
前端
布列瑟农的星空15 分钟前
升级一时爽,降级火葬场——tailwind4降级指北
前端·css
谁黑皮谁肘击谁在连累直升机16 分钟前
for循环的了解与应用
前端·后端
不系舟同学20 分钟前
Three.js + CSS3DSprite 首帧精灵图模糊问题排查、解决
前端
诚实可靠王大锤41 分钟前
react-native集成PDF预览组件react-native-pdf
前端·react native·react.js·pdf
Hilaku1 小时前
前端的设计模式?我觉得90%都是在过度设计!
前端·javascript·设计模式
Miloce1 小时前
零成本搭建跨域代理服务 - Cloudflare Workers实战指南
前端
叫我詹躲躲1 小时前
🌟 回溯算法原来这么简单:10道经典题,一看就明白!
前端·算法·leetcode