vue使用文件树案例

这次给大家带来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' }   ]  }  ] } ]}

    登录后复制

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

    相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

    推荐阅读:

    JS EventEmitter使用详解

    操作Vue导出excel表格

    以上就是vue使用文件树案例的详细内容,更多请关注【创想鸟】其它相关文章!

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

    发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2769787.html

    (0)
    上一篇 2025年3月8日 12:26:01
    下一篇 2025年3月8日 12:26:15

    AD推荐 黄金广告位招租... 更多推荐

    相关推荐

    • vue全局局部组件使用详解

      这次给大家带来vue全局局部组件使用详解,vue全局局部组件使用的注意事项有哪些,下面就是实战案例,一起来看一下。 —main.js文件 **main.js入口文件的内容**import Vue from ‘vue’import App f…

      编程技术 2025年3月8日
      200
    • 源生JS实现文件拖拽事件

      这次给大家带来源生JS实现文件拖拽事件,源生JS实现文件拖拽事件的注意事项有哪些,下面就是实战案例,一起来看一下。 1.效果图: 2.源码 #p1 { width: 350px; height: 70px; padding: 10px; b…

      2025年3月8日
      200
    • JS调试使用详解

      这次给大家带来JS调试使用详解,JS调试的注意事项有哪些,下面就是实战案例,一起来看一下。 试想一下:出现了某个bug,有人用几分钟就搞定了,有人用了半天或者一天都找不到原因所在。你愿意当前者还是后者呢?想当前者的就请好好看完本篇文章吧。文…

      2025年3月8日 编程技术
      200
    • !=、== 、!==、===使用总结

      这次给大家带来!=、== 、!==、===使用总结,!=、== 、!==、===使用的注意事项有哪些,下面就是实战案例,一起来看一下。 var num = 1; var str = ‘1’; var test = 1; test == nu…

      编程技术 2025年3月8日
      200
    • js注入使用详解

      这次给大家带来js注入使用详解,js注入使用的注意事项有哪些,下面就是实战案例,一起来看一下。 最近刚出了新闻,阿里四名网络安全部门员工利用网页漏洞写js脚本抢月饼,于是兴致来了,想了解一下这个js脚本到底怎么写,各种刷单各种抢枪抢又是怎么…

      编程技术 2025年3月8日
      200
    • js内置方法和对象使用详解

      这次给大家带来js内置方法和对象使用详解,js内置方法和对象使用的注意事项有哪些,下面就是实战案例,一起来看一下。 JS内置函数不从属于任何对象,在JS语句的任何地方都可以直接使用这些函数。JS中常用的内置函数如下: 1、eval(str)…

      编程技术 2025年3月8日
      200
    • jQuery三种$()使用案例

      这次给大家带来jQuery三种$()使用案例,jQuery三种$()使用的注意事项有哪些,下面就是实战案例,一起来看一下。 $号是jQuery“类”的一个别称,$()构造了一个jQuery对象。所以,“$()”可以叫做jQuery的构造函数…

      编程技术 2025年3月8日
      200
    • jquery总体架构分析与使用详解

      这次给大家带来jquery总体架构分析与使用详解,jquery总体架构分析与使用的注意事项有哪些,下面就是实战案例,一起来看一下。 jquery的总体架构 (function( window, undefined ) { // 构造 jQu…

      编程技术 2025年3月8日
      200
    • jQuery读取分析xml文件步骤详解

      这次给大家带来jQuery读取分析xml文件步骤详解,jQuery读取分析xml文件的注意事项有哪些,下面就是实战案例,一起来看一下。 这里演示了jQuery如何通过ajax方式定时读取xml文件并分析。 xml文件如下: 登录后复制 js…

      编程技术 2025年3月8日
      200
    • jQuery插件限制上传文件大小与格式使用方法

      这次给大家带来jQuery插件限制上传文件大小与格式使用方法,jQuery插件限制上传文件大小与格式的注意事项有哪些,下面就是实战案例,一起来看一下。 在客户端上传文件,通常需要限制文件的尺寸和格式,最常用的做法是使用某款插件,一些成熟的插…

      编程技术 2025年3月8日
      200

    发表回复

    登录后才能评论