利用Vue2.x开发实现JSON树的方法


Posted in Javascript onJanuary 04, 2018

前言

最近工作中遇到一个需求,由于项目需要一个解析 JSON 字符串并生成 JSON 树的功能,在 GitHub 上也没有找到合适的组件,因此基于 Vue2.X 自己写了一个 JSON 树组件,主要原理是利用 Vue 的递归组件,进行深度优先的先序遍历。该组件不仅可以将一段不可读的 JSON 字符串转化为可读的树形结构,同时可用于抓取某一子树的数据。

  • Github源码
  • Github-Page

组件在它的模板内可以递归地调用自己。不过,只有当它有 name 选项时才可以这么做

字符串数据美化功能:

利用Vue2.x开发实现JSON树的方法

特定层级数据抓取功能:

利用Vue2.x开发实现JSON树的方法

<tree
 :parent-data="data"
 :data="item"
 :path="path + (Array.isArray(data) ? `[${index}]` : `.${index}`)"
 :path-checked="pathChecked"
 :path-selectable="pathSelectable"
 :selectable-type="selectableType"
 :index="index"
 :child="true"
 @click="handleItemClick">
</tree>

通过 parent-data 传入父亲的数据,data 传入孩子的数据,当子树的数据是简单类型时,不再进入递归,同时该组件提供了一个 click 事件,用于获取特定节点的树数据,而孩子的数据,则通过递归机制不断向上一层级传递,类似于“冒泡机制”。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
初学JavaScript_03(ExtJs Grid的简单使用)
Oct 02 Javascript
prototype Element学习笔记(篇二)
Oct 26 Javascript
prototype Element学习笔记(Element篇三)
Oct 26 Javascript
javascript addBookmark 加入收藏 多浏览器兼容
Aug 15 Javascript
获取非最后一列td值并将title设为该值的方法
Oct 30 Javascript
extJS中常用的4种Ajax异步提交方式
Mar 07 Javascript
详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
Jun 01 jQuery
原生js实现简单的链式操作
Jul 04 Javascript
AngularJS实现controller控制器间共享数据的方法示例
Oct 30 Javascript
浅谈ES6 模板字符串的具体使用方法
Nov 07 Javascript
微信小程序实现单选选项卡切换效果
Jun 19 Javascript
详解JavaScript中的数据类型,以及检测数据类型的方法
Sep 17 Javascript
vue-cli配置文件——config篇
Jan 04 #Javascript
jQuery封装animate.css的实例
Jan 04 #jQuery
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
Jan 04 #Javascript
浅谈vuex 闲置状态重置方案
Jan 04 #Javascript
详解Angular5 服务端渲染实战
Jan 04 #Javascript
JavaScript中的高级函数
Jan 04 #Javascript
Three.js 再探 - 写一个微信跳一跳极简版游戏
Jan 04 #Javascript
You might like
PHP Socket 编程
2010/04/09 PHP
php生成圆角图片的方法
2015/04/07 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
Nigma vs AM BO3 第二场2.13
2021/03/10 DOTA
基于jQuery的Spin Button自定义文本框数值自增或自减
2010/07/17 Javascript
用js小类库获取浏览器的高度和宽度信息
2012/01/15 Javascript
JQuery触发radio或checkbox的change事件
2012/12/18 Javascript
document.addEventListener使用介绍
2014/03/07 Javascript
Nodejs极简入门教程(一):模块机制
2014/10/25 NodeJs
jQuery实现统计输入文字个数的方法
2015/03/11 Javascript
跟我学习javascript的var预解析与函数声明提升
2015/11/16 Javascript
Webwork 实现文件上传下载代码详解
2016/02/02 Javascript
TypeScript Type Innference(类型判断)
2016/03/10 Javascript
BootStrap响应式导航条实例介绍
2016/05/06 Javascript
TinyMCE汉化及本地上传图片功能实例详解
2016/05/31 Javascript
JavaScript实现大图轮播效果
2017/01/11 Javascript
vue如何通过id从列表页跳转到对应的详情页
2018/05/01 Javascript
JavaScript+HTML5 canvas实现放大镜效果完整示例
2019/05/15 Javascript
vue:el-input输入时限制输入的类型操作
2020/08/05 Javascript
使用Python的Scrapy框架编写web爬虫的简单示例
2015/04/17 Python
Python制作简单的网页爬虫
2015/11/22 Python
Python2.7 实现引入自己写的类方法
2018/04/29 Python
对python中的pop函数和append函数详解
2018/05/04 Python
关于tf.nn.dynamic_rnn返回值详解
2020/01/20 Python
Python字典添加,删除,查询等相关操作方法详解
2020/02/07 Python
Python基础之字符串操作常用函数集合
2020/02/09 Python
Python3如何在Windows和Linux上打包
2020/02/25 Python
pycharm远程连接服务器并配置python interpreter的方法
2020/12/23 Python
FOREO斐珞尔官方旗舰店:LUNA露娜洁面仪
2018/03/11 全球购物
Volcom英国官方商店:美国殿堂级滑板、冲浪、滑雪服装品牌
2019/03/13 全球购物
会计自荐书
2013/12/02 职场文书
行政文秘岗位职责范本
2014/02/10 职场文书
安全生产月活动总结
2014/05/04 职场文书
2014年财务科工作总结
2014/11/11 职场文书
委托公证书样本
2015/01/23 职场文书
Python使用OpenCV实现虚拟缩放效果
2022/02/28 Python