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

yizhihongxing

要将后端返回的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项目部署后刷新网页报404错误解决

    针对题目“关于vue项目部署后刷新网页报404错误解决”的问题,我将给出完整攻略,并给出两个示例说明。 问题背景 在vue项目部署后,当在浏览器上进行刷新时,会出现404 Not Found错误,这是因为部署后的静态文件资源没有被正确地映射到服务器的URL路径上。 解决方法 部署vue项目后,需要在服务器端配置URL路径的映射规则,将浏览器请求的URL路径指…

    Vue 2023年5月28日
    00
  • Vue基础之侦听器详解

    Vue基础之侦听器详解 在Vue中,我们可以通过侦听器来监听组件内部数据的变化并做相应的处理。侦听器可以观察数据的变化并在变化时执行一些操作。在本篇文章中,我们将深入探讨Vue的侦听器,包括如何定义侦听器,侦听器的使用场景以及一些示例。 定义侦听器 我们可以在Vue组件内定义侦听器,在组件的watch选项中添加需要侦听的数据和相应的处理函数即可。定义侦听器的…

    Vue 2023年5月27日
    00
  • Vue 组件组织结构及组件注册详情

    Vue 组件是 Vue.js 中非常重要的一部分,它能够帮助我们将一个大型的项目模块化分解,使得代码更易于维护和扩展。本篇攻略将详细讲解Vue 组件的组织结构和组件注册的方法,希望能够帮助你更好地理解 Vue 组件。 组件组织结构 Vue 组件的组织结构一般如下图所示: ├── App.vue ├── types.d.ts ├── components │ …

    Vue 2023年5月28日
    00
  • vue如何清除地址栏参数

    清除地址栏参数是指在使用 Vue.js 进行路由跳转时,能够清除地址栏中的参数,保证进入页面时的地址栏参数为空,避免出现错误。本文将详细介绍如何实现 Vue.js 清除地址栏参数的方法及其示例。 方法一:使用 beforeRouteUpdate 钩子函数 beforeRouteUpdate 钩子函数可以在组件重用时调用,我们可以在这个钩子函数里面清除地址栏参…

    Vue 2023年5月28日
    00
  • Vue在 Nuxt.js 中重定向 404 页面的方法

    当使用Nuxt.js作为Vue的应用程序框架时,处理404页面的方式与该框架的其他部分略有不同。在这种情况下,我们需要创建一个名为error.vue的特殊页面以处理所有404错误。在这个页面中,我们可以使用Vue.js中的重定向功能将用户重定向到自定义404页面。 下面是使用Vue在Nuxt.js中重定向404页面的Step-by-Step攻略: 在page…

    Vue 2023年5月28日
    00
  • .html页面引入vue并使用公共组件方式

    介绍:本文主要讲解如何在.html页面中引入vue并使用公共组件,方便不熟悉Vue.js框架但需要使用公共组件的人员进行开发。 步骤: 引入Vue.js及Vue组件库 在.html文件中使用<script>标签引入Vue.js及所需的Vue组件库。如下: “`html “` 注册Vue组件 在引入Vue组件库后,我们需要先在页面中注册需要使用…

    Vue 2023年5月28日
    00
  • 在 Vue 中控制表单输入方法详解

    让我为您详细解释如何在Vue中控制表单输入。 1. 控制表单输入 在Vue中,表单输入可以双向绑定数据,使用 v-model 指令可以轻松实现。 1.1 普通表单元素 对于普通的表单元素,例如输入框和选择框,你可以使用 v-model 指令将其值与Vue组件的data进行绑定。在数据更新时,输入框会自动更新。 下面是一个示例: <template&gt…

    Vue 2023年5月27日
    00
  • JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析

    下面是详细讲解“JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析”的完整攻略。 1. 需求分析 我们的目标是实现在HTML页面中自定义一个上传图片按钮,并且在用户选择上传图片后,能够将图片显示在页面上。 需要具备以下功能: 自定义上传图片按钮 选择图片文件后上传并显示图片 将图片文件转换为base64编码 2. HTML布局 首先,我们需要在HT…

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