vue文件树组件使用详解

这篇文章主要为大家详细介绍了vue文件树组件的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了vue文件树组件的实现方法,供大家参考,具体内容如下

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

首先是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' }   ]  }  ] } ]}

登录后复制

立即学习“前端免费学习笔记(深入)”;

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

原生nodejs使用websocket代码分享

详解nodejs通过响应回写的方式渲染页面资源

vue下拉列表功能实例代码

立即学习“前端免费学习笔记(深入)”;

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

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

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

(0)
上一篇 2025年3月8日 07:18:26
下一篇 2025年3月6日 07:52:30

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

相关推荐

  • 如何使用vue中swiper

    这次给大家带来如何使用vue中swiper,使用vue中swiper的注意事项有哪些,下面就是实战案例,一起来看一下。 Install 在vue cli下的使用 npm install vue-awesome-swiper –s…

    2025年3月8日 编程技术
    200
  • 如何使用vue配置多页面

    这次给大家带来如何使用vue配置多页面,使用vue配置多页面的注意事项有哪些,下面就是实战案例,一起来看一下。 1.安装环境 ①安装node.js 并添加入环境变量PATH ②安装淘宝NPM镜像 $ npm install -g cnpm …

    2025年3月8日
    200
  • js类型判断使用详解

    这次给大家带来js类型判断使用详解,js类型判断使用的注意事项有哪些,下面就是实战案例,一起来看一下。 js类型转换中typeof会将null也识别为object, 而且返回的类型比少,我们用Object.prototype.toStrin…

    编程技术 2025年3月8日
    200
  • vue组件jsx语法使用步奏详解

    这次给大家带来vue组件jsx语法使用步奏详解,vue组件jsx语法使用的注意事项有哪些,下面就是实战案例,一起来看一下。 配置 需要用到babel插件 安装 npm install babel-plugin-syntax-jsx babe…

    编程技术 2025年3月8日
    200
  • 怎样使用ESlint

    这次给大家带来怎样使用ESlint,使用ESlint的注意事项有哪些,下面就是实战案例,一起来看一下。 1. 什么是ESlint? ESLint 是一个ECMAScript/JavaScript 语法规则和代码风格的检查工具,它的目标是保证…

    2025年3月8日 编程技术
    200
  • 如何使用Vue内父子组件通讯todolist组件

    这次给大家带来如何使用Vue内父子组件通讯todolist组件,使用Vue内父子组件通讯todolist组件的注意事项有哪些,下面就是实战案例,一起来看一下。 一、todolist功能开发 提交 {{item}} new Vue({ el:…

    2025年3月8日
    200
  • 怎样使用vue内diff算法

    这次给大家带来怎样使用vue内diff算法,使用vue内diff算法的注意事项有哪些,下面就是实战案例,一起来看一下。 1. 当数据发生变化时,vue是怎么更新节点的? 要知道渲染真实DOM的开销是很大的,比如有时候我们修改了某个数据,如果…

    2025年3月8日 编程技术
    200
  • 使用vue-admin-template优化步骤详解

    这次给大家带来使用vue-admin-template优化步骤详解,使用vue-admin-template优化的注意事项有哪些,下面就是实战案例,一起来看一下。 前言 公司有好几个项目都有后台管理系统,为了方便开发,所以选择了 vue 中…

    2025年3月8日 编程技术
    200
  • 怎样对vuex进阶使用

    这次给大家带来怎样对vuex进阶使用,对vuex进阶使用的注意事项有哪些,下面就是实战案例,一起来看一下。 一、 Getter 我们先回忆一下上一篇的代码 computed:{ getName(){ return this.$store.s…

    编程技术 2025年3月8日
    200
  • vuex入门教学步奏详解

    这次给大家带来vuex入门教学步奏详解,vuex入门的注意事项有哪些,下面就是实战案例,一起来看一下。 前言 之前几个项目中,都多多少少碰到一些组件之间需要通信的地方,而因为种种原因,event bus 的成本反而比vuex还高, 所以技术…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论