利用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 相关文章推荐
Jquery 扩展方法
May 06 Javascript
bootstrap datetimepicker实现秒钟选择下拉框
Jan 05 Javascript
微信小程序 小程序制作及动画(animation样式)详解
Jan 06 Javascript
实例解析js中try、catch、finally的执行规则
Feb 24 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
Mar 01 Javascript
jQuery UI Draggable + Sortable 结合使用(实例讲解)
Sep 07 jQuery
深入理解ES6中let和闭包
Feb 22 Javascript
Vue2.0系列之过滤器的使用
Mar 01 Javascript
Windows下支持自动更新的Electron应用脚手架的方法
Dec 24 Javascript
原生js实现公告滚动效果
Jan 10 Javascript
Vue 样式绑定的实现方法
Jan 15 Javascript
vue elementui el-form rules动态验证的实例代码详解
May 23 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
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
2006/11/18 PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
2013/07/03 PHP
PHP魔术引号所带来的安全问题分析
2014/07/15 PHP
php实现按天数、星期、月份查询的搜索框
2016/05/02 PHP
ThinkPHP5+Layui实现图片上传加预览功能
2018/08/17 PHP
laravel框架实现后台登录、退出功能示例
2019/10/31 PHP
Jquery 的扩展方法总结
2011/10/01 Javascript
jquery创建一个ajax关键词数据搜索实现思路
2013/02/26 Javascript
JQuery异步加载无限下拉框级联功能实现示例
2014/02/19 Javascript
jquery图片轮播特效代码分享
2020/04/20 Javascript
JQuery 的跨域方法推荐_可跨任何网站
2016/05/18 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
2016/08/15 Javascript
详解在Angular项目中添加插件ng-bootstrap
2017/07/04 Javascript
node之本地服务器图片上传的方法示例
2019/03/26 Javascript
微信小程序基于Taro的分享图片功能实践详解
2019/07/12 Javascript
详解Vue中CSS样式穿透问题
2019/09/12 Javascript
JavaScript Window浏览器对象模型原理解析
2020/05/30 Javascript
微信小程序实现拨打电话功能的示例代码
2020/06/28 Javascript
python利用正则表达式搜索单词示例代码
2017/09/24 Python
django开发教程之利用缓存文件进行页面缓存的方法
2017/11/10 Python
python RabbitMQ 使用详细介绍(小结)
2018/11/08 Python
Python lambda表达式用法实例分析
2018/12/25 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
解决python super()调用多重继承函数的问题
2019/06/26 Python
python Scrapy框架原理解析
2021/01/04 Python
canvas学习和滤镜实现代码
2018/08/22 HTML / CSS
德国团购网站:Groupon德国
2018/03/13 全球购物
澳大利亚有机化妆品网上商店:The Well Store
2020/02/20 全球购物
益模软件Java笔试题
2012/03/27 面试题
教师演讲稿范文
2014/01/08 职场文书
商场消防管理制度
2014/01/12 职场文书
考察现实表现材料
2014/05/19 职场文书
公文写作指导之倡议书!
2019/07/03 职场文书
导游词之河北白洋淀
2020/01/15 职场文书
python实现三次密码验证的示例
2021/04/29 Python
MySQL创建管理RANGE分区
2022/04/13 MySQL