vue+elementUI tree 一层层加载

要实现懒加载必须加 lazy 属性

<el-tree  props="defaultProps"   :load="loadNode"   :expand-on-click-node="false"   node-key="id"     lazy     accordion   @node-click="handleNodeClick"></el-tree>

export default {
  data () {
    return {

      treeData: [],
      childTreeData: [],
      defaultProps: {
        label: "name",
        id: "id"
      },
      detailTreeDate: [],
      node_had: [], // 这里是关键!在data里面定义一个变量,将node.level == 0的node存起来
      resolve_had: [], // 同上,把node.level == 0的resolve也存起来

    },

methods:{

 getTreeData(termSysId) {
      // termSysId 下拉框选择值Id
      let _this = this;
      _this.$http({
            url: _this.$http.adornUrl(_this.apiUrl.getTopVocabularyId),
            method: 'get',
            params: _this.$http.adornParams({'vocabularyId':_this.form.termSys},false)
          }).then(({data}) => {
               if (data && data.success == true) {
                _this.treeData = data.data
                _this.detailTreeDate = [];
                  _this.node_had.childNodes = []; // 把存起来的node的子节点清空,不然会界面会出现重复树!
                  _this.loadNode(_this.node_had, _this.resolve_had); // 再次执行懒加载的方法
        } else {
          _this.$message({
                  showClose: true,
                message: data.msg,
                type: 'error'
              });
        }    
          })
    },
    getChildrenNode(node, resolve) {
      // 获取二级节点数据
      let conceptId = node.data.id;
      let _this = this;
      _this.$http({
            url: _this.$http.adornUrl(this.apiUrl.treeNavigate),
            method: 'get',
            params: _this.$http.adornParams({'id':conceptId},false)
          }).then(({data}) => {
               if (data && data.success == true) {
                this.childTreeData = data.data
                resolve(this.childTreeData);
        } else {
          _this.$message({
                  showClose: true,
                message: data.msg,
                type: 'error'
              });
        }    
          })
    },
    loadNode(node, resolve) {
      if (node.level === 0) {
        // 请求一级tree菜单
        this.node_had = node; // 这里是关键!在data里面定义一个变量,将node.level == 0的node存起来
        this.resolve_had = resolve; // 同上,把node.level == 0的resolve也存起来
        return resolve(this.treeData);
      }
      if (node.level === 1 || node.level > 1) {
        //  请求二级tree菜单及其他子级节点
        this.getChildrenNode(node, resolve);
      }
    },

}

}}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: springboot+vue+elementui 是一种常见的前后端分离开发框架组合,其中 springboot 作为后端框架,提供了丰富的开发工具和便捷的配置方式;vue 作为前端框架,提供了组件化开发和响应式数据绑定等特性;elementui 则是一套基于 vue 的 UI 组件库,提供了丰富的 UI 组件和样式,可以快速搭建出美观的前端界面。这种组合方式可以提高开发效率,降低开发成本,是现代化 Web 应用开发的主流选择之一。 ### 回答2: Spring Boot、VueElementUI 三者都是现代企业级的 Web 开发框架,各自拥有特色和优势,同时也有着协同工作的潜力。 Spring Boot 是一款基于 Java 编写并运行的轻量级 Web 框架,其主要目标是简化 Spring 应用的搭建和设计。它提供了一个快速开发应用的高效率方式,使得开发者可以专注于业务逻辑的实现,而无需关注底层设施和配置文件细节。 Vue 是一个流行的 JavaScript 前端框架,它可以帮助开发者构建可复用和可扩展的网络应用程序。特别是其数据绑定和组件化系统,在开发高度交互的 UI 应用时具有很大的优势。 ElementUI 是一套基于 Vue前端 UI 组件库,它提供了多种常用的 UI 元素和样式。ElementUI 的组件样式比较简洁美观,同时还提供了灵活和自定义的主题功能,开发者可以根据自己的需求轻松实现不同的组件样式。 Spring Boot 和 Vue 配合使用时,前端使用 Vue 展示,后端使用 Spring Boot 导出数据和服务。Vue 支持使用 Axios、Fetch 等方式进行异步请求,从而获取后端数据,以响应前端的操作。ElementUI 可以帮助开发者快速搭建整个 Web 应用程序的前端界面,减轻前端开发的工作量。 综上所述,Spring Boot、VueElementUI 三者共同使用,可以在开发 Web 应用时提高开发效率,更快地构建出高质量的应用程序。同时,该组合也能够帮助开发者在后端和前端之间良好地维持数据的交互和一致性。 ### 回答3: SpringBoot是一款开源的Java开发框架,它主要用于快速构建企业级应用程序。SpringBoot通过减少XML配置来简化Spring应用程序的开发过程,并且内嵌了Tomcat、Jetty和Undertow等常用的Web容器,从而大大简化了Web应用程序的部署步骤。 Vue是一款前端框架,它可以帮助开发人员更加轻松地构建复杂的单页面应用程序。Vue的主要特点是组件化和响应式编程。Vue提供了强大的模板和数据绑定功能,使得开发人员可以很方便地实现一些复杂的应用程序。 ElementUI是一款基于Vue.js的UI框架。它提供了一系列高质量的组件,如表格、日期选择器、对话框、按钮等等,可以大大加速Web应用程序的开发过程。ElementUI提供了丰富的主题和设计语言,可以满足不同应用场景的需要。 SpringBoot与VueElementUI的结合,可以帮助开发人员更快地构建现代化的Web应用程序。SpringBoot提供了强大的后端支持,包括数据访问层、事务管理等等,可以快速构建可靠的后端服务。VueElementUI则提供了丰富的前端组件和模板,可以帮助开发人员更快地搭建出漂亮的界面。同时,Vue的响应式编程和ElementUI的组件化设计可以帮助开发人员更快地实现复杂的前端逻辑。 总之,SpringBoot、VueElementUI的结合可以帮助开发人员更快地构建高质量的Web应用程序,提供了丰富的工具和组件,可以满足不同应用场景的需要。它们的协作和衔接,展示了强大的开发效率和组件之间的友好结合。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值