利用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 相关文章推荐
发现的以前不知道的函数
Sep 19 Javascript
用JS写的一个TableView控件代码
Jan 23 Javascript
JavaScript 基础篇(一)
Mar 30 Javascript
JQuery通过AJAX从后台获取信息显示在表格上并支持行选中
Sep 15 Javascript
三个js循环的关键字示例(for与while)
Feb 16 Javascript
基于BootStrap环境写jQuery tabs插件
Jul 12 Javascript
BootStrap tooltip提示框使用小结
Oct 26 Javascript
JS实现网页抢购功能(触发,终止脚本)
Nov 27 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
Oct 12 Javascript
vue自定义表单生成器form-create使用详解
Jul 19 Javascript
解决layui表格的表头不滚动的问题
Sep 04 Javascript
Vue实现菜单切换功能
Nov 08 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使用imagick扩展实现合并图像的方法
2017/04/25 PHP
thinkPHP5框架自定义验证器实现方法分析
2018/06/11 PHP
php屏蔽错误及提示的方法
2020/05/10 PHP
js实现页面打印功能实例代码(附去页眉页脚功能代码)
2009/12/15 Javascript
Javascript和Ajax中文乱码吐血版解决方案
2009/12/21 Javascript
解析JSON对象与字符串之间的相互转换
2013/12/18 Javascript
javascript实现检验的各种规则
2015/07/31 Javascript
js仿新浪微博消息发布功能
2017/02/17 Javascript
JavaScript 数组去重并统计重复元素出现的次数实例
2017/12/14 Javascript
vue初始化动画加载的实例
2018/09/01 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
2019/04/29 Javascript
简单了解vue 插值表达式Mustache
2020/07/22 Javascript
详解JavaScript作用域、作用域链和闭包的用法
2020/09/03 Javascript
.netcore+vue 实现压缩文件下载功能
2020/09/24 Javascript
[54:18]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第一场 1月22日
2021/03/11 DOTA
python 获取文件列表(或是目录例表)
2009/03/25 Python
Python实现八大排序算法
2016/08/13 Python
python之文件的读写和文件目录以及文件夹的操作实现代码
2016/08/28 Python
python做量化投资系列之比特币初始配置
2018/01/23 Python
python验证码识别教程之利用滴水算法分割图片
2018/06/05 Python
python如何实现视频转代码视频
2019/06/17 Python
python对csv文件追加写入列的方法
2019/08/01 Python
postman和python mock测试过程图解
2020/02/22 Python
Python如何实现FTP功能
2020/05/28 Python
python有几个版本
2020/06/17 Python
python中加背景音乐如何操作
2020/07/19 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
2021/02/01 Python
HTML5开发动态音频图的实现
2020/07/02 HTML / CSS
英国鲜花速递:Serenata Flowers
2018/04/03 全球购物
银河香水:Galaxy Perfume
2019/03/25 全球购物
美国智能家居专家:tink
2019/06/04 全球购物
拖鞋店创业计划书
2014/01/15 职场文书
公证书样本
2014/04/10 职场文书
离婚上诉状范文
2015/05/23 职场文书
mysql的Buffer Pool存储及原理
2022/04/02 MySQL
Vite + React从零开始搭建一个开源组件库
2022/06/25 Javascript