美文网首页Web前端之路
Vue-component | 极其简易Tree列表

Vue-component | 极其简易Tree列表

作者: 鱼太咸丶 | 来源:发表于2020-04-15 23:00 被阅读0次

日常开发中积累了不少可能对一些开发有帮助的简单易用的组件,好记性不如烂笔头,想对过去的一些零零乱乱的东西做一些总结,反省自己的同时也便于思考一些更优的方法,提升下开发思维😉😉😉。
代码传送门(😃感觉有作用的的同学帮忙点下❤️️)

效果截图

这是一个简单的树形列表,可展开收起。


Tree.gif

组件结构

由多层列表嵌套组成。

<ul>
    <li>
        <ul>
            <li>...</li>
         </ul>
    </li>
</ul>

核心代码

Tree
最顶层结构

<template>
  <ul>
    <item :model="model" />
  </ul>
</template>
<script>
import Item from './Item'
export default {
  name: 'j-tree',
  components: { Item },
  props: {
    model: Object
  }
}
</script>

Item
递归调用自己的核心

<template>
  <li>
    <div @click="toggle">
      {{model.title}}
      <span>[{{isOpen?"-":"+"}}]</span>
    </div>
    <ul v-show="isOpen" class="item">
      //    递归组件自己本身,要记得加上name,不然找不到自己。
      <item v-for="(item, index) in model.children" :key="index" :model="item" />
    </ul>
  </li>
</template>
<script>
export default {
  name: 'item',
  components: {},
  props: {
    model: Object
  },
  data () {
    return {
      isOpen: false
    }
  },
  methods: {
    toggle () {
      this.isOpen = !this.isOpen
    }
  }
}
</script>

传入的数据格式

treeData: {
        title: '地球',
        children: [
          {
            title: '人'
          },
          {
            title: '水果',
            children: [
              {
                title: '橘子'
              },
              {
                title: '苹果'
              }
            ]
          },
          {
            title: '植物',
            children: [
              {
                title: '四君子',
                expand: true,
                children: [
                  {
                    title: '梅'
                  },
                  {
                    title: '兰'
                  },
                  {
                    title: '竹'
                  }
                ]
              },
              {
                title: '动物',
                children: [
                  {
                    title: '猪🐷'
                  },
                  {
                    title: '狗'
                  }
                ]
              },
              {
                title: '气体',
                children: [
                  {
                    title: '空气',
                    children: [
                      {
                        title: '氧气'
                      }]
                  }]
              }
            ]
          }
        ]
      }

关键点


在这里主要使用的一些技术包括:

技术 概述 备注
递归组件 自己调用自己,要记得注明name /
v-for 在这里搭配递归,将数据一层一层遍历展示 /

后续会持续更新其他一些有用的组件提供参考...

相关文章

  • Vue-component | 极其简易Tree列表

    日常开发中积累了不少可能对一些开发有帮助的简单易用的组件,好记性不如烂笔头,想对过去的一些零零乱乱的东西做一些总结...

  • tree使用

    Tree命令简介 tree是一种递归目录列表命令,产生一个深度缩进列表文件,这是彩色的ALA dircolors如...

  • 自动导出项目目录

    Tree命令简介 tree是一种递归目录列表命令,产生一个深度缩进列表文件,这是彩色的ALA dircolors如...

  • 07Vue.js实现简易的todolist列表

    Vue.js实现简易的todolist列表 我们可以利用vue做一个简易的列表清单。要求如下:1、在文本框内输入内...

  • 简易的课程列表

    效果图: 非常的简单,基础,主要使div进行布局,需要考虑的是div内文字的水平垂直居中,间断的border-bo...

  • 简易坐山式(基础呼吸法动作)

    简易坐山式 动作列表(基础呼吸法的动作) 动作描述: 简易坐姿,小腿交叉,双膝打开,双脚外侧着地,分别放在双膝下方...

  • vim plugins

    vimawesome vundle.vim 作为 vim 的包管理器 githubNerd tree 是文件树列表...

  • Vue-component实现动态组件切换传值问题

    Vue-component实现动态组件切换传值问题 使用动态组件 vue提供了一个内置的 ...

  • Windows 输出目录结构

    tree /f /f:显示所有目录及目录下的文件 如果不加,只会显示目录列表

  • 白板App

    白板 一个简易的白板实现。https://github.com/shutup/WhiteBoard 功能列表 完成...

网友评论

    本文标题:Vue-component | 极其简易Tree列表

    本文链接:https://www.haomeiwen.com/subject/yqlkvhtx.html