0

0

vue文件树组件使用(附代码)

php中世界最好的语言

php中世界最好的语言

发布时间:2018-04-27 16:36:35

|

2262人浏览过

|

来源于php中文网

原创

这次给大家带来vue文件树组件使用(附代码),使用vue文件树组件的注意事项有哪些,下面就是实战案例,一起来看一下。

本文主要是分析vue官方仓库里的文件树组件[vue github]

demo可以查看 https://codepen.io/shayminsky21/pen/xXwxgm

首先是html模板:

  • //显示文件名 {{model.name}} //若是文件夹的话则显示[+]来控制文件夹的开关闭合 [{{open ? '-' : '+'}}]

      //利用v-for显示子文件列表,通过递归使用item组件来完成文件树 //增加一个+标记,单击可以增加子文件
    • +
  • 接下来是组件部分的源码:

    Vue.component('item', {
     template: '#item-template',
     props: {
     model: Object //将文件数据通过props传入
     },
     data: function () {
     return {
      open: false  //open表示文件夹闭合状态
     }
     },
     computed: {
     isFolder: function () {
      return this.model.children &&
      this.model.children.length
     }
     }, //计算对象是否有子节点并且子节点数大于0来判断是否是文件夹
     methods: {
     toggle: function () {
      if (this.isFolder) {
      this.open = !this.open
      }
     },    //控制文件夹闭合的方法 单击触发改变open
     changeType: function () {
      if (!this.isFolder) {
      Vue.set(this.model, 'children', [])
      this.addChild()
      this.open = true
      }
     }, //双击触发,通过给文件增加子节点来使文件属性变成文件夹
     addChild: function () {
      this.model.children.push({
      name: 'new stuff'
      })  //点击文件夹里的+节点触发 为文件夹添加一个新文件
     }   
     }
    })

    所以设计思路就是通过判断对象是否有子节点来决定是文件夹还是文件,然后通过递归复用组件来展示文件树的效果。

    最后是传入组件的数据格式:

    var data = {
     name: 'My Tree',
     children: [
     { name: 'hello' },
     { name: 'wat' },
     {
      name: 'child folder',
      children: [
      {
       name: 'child folder',
       children: [
       { name: 'hello' },
       { name: 'wat' }
       ]
      },
      { name: 'hello' },
      { name: 'wat' },
      {
       name: 'child folder',
       children: [
       { name: 'hello' },
       { name: 'wat' }
       ]
      }
      ]
     }
     ]
    }

    大家可以根据这个基本的结构继续拓展文件树的功能和展示效果。

    相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

    推荐阅读:

    mallcloud商城
    mallcloud商城

    mallcloud商城基于SpringBoot2.x、SpringCloud和SpringCloudAlibaba并采用前后端分离vue的企业级微服务敏捷开发系统架构。并引入组件化的思想实现高内聚低耦合,项目代码简洁注释丰富上手容易,适合学习和企业中使用。真正实现了基于RBAC、jwt和oauth2的无状态统一权限认证的解决方案,面向互联网设计同时适合B端和C端用户,支持CI/CD多环境部署,并提

    下载

    vue中ajax请求与axios包完美处理

    jquery获取上传文件详细信息

    相关专题

    更多
    excel制作动态图表教程
    excel制作动态图表教程

    本专题整合了excel制作动态图表相关教程,阅读专题下面的文章了解更多详细教程。

    20

    2025.12.29

    freeok看剧入口合集
    freeok看剧入口合集

    本专题整合了freeok看剧入口网址,阅读下面的文章了解更多网址。

    65

    2025.12.29

    俄罗斯搜索引擎Yandex最新官方入口网址
    俄罗斯搜索引擎Yandex最新官方入口网址

    Yandex官方入口网址是https://yandex.com;用户可通过网页端直连或移动端浏览器直接访问,无需登录即可使用搜索、图片、新闻、地图等全部基础功能,并支持多语种检索与静态资源精准筛选。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    197

    2025.12.29

    python中def的用法大全
    python中def的用法大全

    def关键字用于在Python中定义函数。其基本语法包括函数名、参数列表、文档字符串和返回值。使用def可以定义无参数、单参数、多参数、默认参数和可变参数的函数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    16

    2025.12.29

    python改成中文版教程大全
    python改成中文版教程大全

    Python界面可通过以下方法改为中文版:修改系统语言环境:更改系统语言为“中文(简体)”。使用 IDE 修改:在 PyCharm 等 IDE 中更改语言设置为“中文”。使用 IDLE 修改:在 IDLE 中修改语言为“Chinese”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    16

    2025.12.29

    C++的Top K问题怎么解决
    C++的Top K问题怎么解决

    TopK问题可通过优先队列、partial_sort和nth_element解决:优先队列维护大小为K的堆,适合流式数据;partial_sort对前K个元素排序,适用于需有序结果且K较小的场景;nth_element基于快速选择,平均时间复杂度O(n),效率最高但不保证前K内部有序。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    12

    2025.12.29

    php8.4实现接口限流的教程
    php8.4实现接口限流的教程

    PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    134

    2025.12.29

    抖音网页版入口在哪(最新版)
    抖音网页版入口在哪(最新版)

    抖音网页版可通过官网https://www.douyin.com进入,打开浏览器输入网址后,可选择扫码或账号登录,登录后同步移动端数据,未登录仅可浏览部分推荐内容。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    63

    2025.12.29

    快手直播回放在哪看教程
    快手直播回放在哪看教程

    快手直播回放需主播开启功能才可观看,主要通过三种路径查看:一是从“我”主页进入“关注”标签再进主播主页的“直播”分类;二是通过“历史记录”中的“直播”标签页找回;三是进入“个人信息查阅与下载”里的“直播回放”选项。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    18

    2025.12.29

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    Git 教程
    Git 教程

    共21课时 | 2.3万人学习

    SciPy 教程
    SciPy 教程

    共10课时 | 1.0万人学习

    Kotlin 教程
    Kotlin 教程

    共23课时 | 2.1万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号