Vue将将后端返回的list数据转化为树结构的实现

要将后端返回的list数据转化为树结构,我们可以通过Vue自带的方法或使用第三方库来实现。以下是两种实现方式:

方法一:使用Vue自带方法实现

Vue提供了一个$filter方法,可以用于筛选数组并返回新的数组。我们可以根据父子节点的关系,遍历list数据,将每个子节点添加到对应的父节点下面,最终得到树结构的数据。

示例代码如下:

// 原始数据
let list = [
  { id: 1, name: 'parent1', parentId: 0 },
  { id: 2, name: 'child1', parentId: 1 },
  { id: 3, name: 'child2', parentId: 1 },
  { id: 4, name: 'parent2', parentId: 0 },
  { id: 5, name: 'child3', parentId: 4 },
  { id: 6, name: 'child4', parentId: 5 }
];

// 将原始数据转换为树结构
let tree = list.filter(item => item.parentId === 0)
  .map(item => {
    item.children = list.filter(child => child.parentId === item.id);
    return item;
  });

console.log(tree);

方法二:使用第三方库iview的fromTree方法实现

iview是一款非常好用的Vue组件库,提供了强大的常用组件和实用功能。其中,fromTree方法可以将list数据自动转换为树结构数据。

示例代码如下:

<template>
  <Tree :data="treeData" />
</template>

<script>
import { Tree } from 'iview';

export default {
  data() {
    return {
      list: [
        { id: 1, name: 'parent1', parentId: 0 },
        { id: 2, name: 'child1', parentId: 1 },
        { id: 3, name: 'child2', parentId: 1 },
        { id: 4, name: 'parent2', parentId: 0 },
        { id: 5, name: 'child3', parentId: 4 },
        { id: 6, name: 'child4', parentId: 5 }
      ]
    }
  },
  computed: {
    treeData() {
      return Tree.fromTree(this.list);
    }
  },
  components: {
    Tree
  }
}
</script>

以上是两种转换list数据为树结构的实现方法,可以根据实际需求来选择使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue将将后端返回的list数据转化为树结构的实现 - Python技术站

(0)
上一篇 2023年5月29日
下一篇 2023年5月29日

相关文章

  • vue中为什么在组件内部data是一个函数而不是一个对象

    在Vue中,组件内部的data需要一个函数来返回一个对象,而不能直接使用一个对象。这是因为组件在Vue的框架下是一个被复用的实例,如果直接使用一个对象作为组件的data属性,那么复用的组件实例将会共享同一个data,从而导致数据污染。 举个例子,假设我们有一个组件A和一个组件B,它们都使用了同一份data对象。当我们使用组件A时,修改data对象的某个属性值…

    Vue 2023年5月28日
    00
  • vue脚手架vue-cli的卸载与安装方式

    下面是关于“vue脚手架vue-cli的卸载与安装方式”的完整攻略。 一、卸载vue-cli 1. 全局卸载 如果你使用的是全局安装的方式,则可以使用npm命令进行卸载。在命令行中输入以下命令: npm uninstall -g vue-cli 2. 本地卸载 如果你使用的是本地安装的方式,则需要进入到项目中进行卸载。在项目中打开命令行窗口,输入以下命令: …

    Vue 2023年5月27日
    00
  • 解决Vue+Electron下Vuex的Dispatch没有效果问题

    解决 Vue+Electron 下 Vuex 的 Dispatch 没有效果问题 问题描述: 在使用 Vue+Electron 构建桌面应用程序时,可能会遇到 Vuex 的 Dispatch 方法无法正常触发 Action 的问题。例如下面的代码: // 在 Vue 组件中的方法里调用 Action,但没有效果 this.$store.dispatch(‘g…

    Vue 2023年5月28日
    00
  • Vuei18n 在数组中的使用方式

    Vuei18n 是 Vue.js 官方提供的国际化插件。在实际开发中,我们通常需要在不同语种下展示不同的文案,这时候就需要使用 Vuei18n 来实现多语言切换。 Vuei18n 在数组中的使用方式非常方便,可以简单实现不同语种下的文本数据复用。下面是具体步骤: 1. 安装 Vuei18n Vuei18n 可以通过 npm 安装: npm install v…

    Vue 2023年5月29日
    00
  • vue自定义可选时间的日历组件

    下面是详细讲解“vue自定义可选时间的日历组件”的完整攻略,过程中将包含两个示例说明。 简介 日历组件是一个常见的组件,它允许用户选择日期或时间,展示当前日期和月份等信息。Vue.js是一种前端框架,可以很好地支持日历组件的开发。有时候我们需要自定义可选时间的日历组件,以满足项目需求,接下来将介绍实现自定义可选时间的日历组件的步骤。 步骤 安装和导入依赖 首…

    Vue 2023年5月28日
    00
  • vue项目中在外部js文件中直接调用vue实例的方法比如说this

    在 Vue 项目中,我们通常会将 JS 代码放在 Vue 组件中,这种方式可以方便地获取 Vue 实例和数据,但是有些场景需要在外部 JS 文件中直接调用 Vue 实例的方法,这时我们需要一些特殊的处理。 在外部 JS 文件中调用 vue 实例方法的参考步骤 先在外部 JS 文件中引入 Vue 库 js import Vue from “vue”; 注意: …

    Vue 2023年5月27日
    00
  • this在vue和小程序中的使用详解

    this在vue和小程序中的使用详解 在Vue和小程序中,this指向的对象在不同的上下文中可能会有所不同,因此正确理解和使用this关键字非常重要。在本文中,将对Vue和小程序中this的用法进行详细的解释和说明,同时给出一些示例来加深理解。 Vue中的this 在Vue中,我们经常需要在组件的生命周期、方法和计算属性等中使用this。在Vue组件中,th…

    Vue 2023年5月27日
    00
  • vue前端测试开发watch监听data的数据变化

    当我们在使用Vue进行前端开发时,数据是我们不可避免的要处理的部分。而在开发时,我们需要不断地验证各种场景下数据的正确性,这就需要我们进行前端测试开发。 Vue为我们提供了watch属性,可以监听指定变量的变化并在变化时进行一些操作,如更新DOM或调用我们自己的函数等。 下面是watch监听data数据变化的完整攻略: 步骤1:为要监听的数据添加watch属…

    Vue 2023年5月29日
    00
合作推广
合作推广
分享本页
返回顶部