利用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中的this绑定介绍
Sep 22 Javascript
浅析jQuery中常用的元素查找方法总结
Jul 04 Javascript
js动态修改input输入框的type属性(实现方法解析)
Nov 13 Javascript
javascript学习笔记(五)原型和原型链详解
Oct 08 Javascript
AngularJs实现ng1.3+表单验证
Dec 10 Javascript
详解Html a标签中href和onclick用法、区别、优先级别
Jan 16 Javascript
jQuery中DOM节点的删除方法总结(超全面)
Jan 22 Javascript
深入浅析AngularJS中的一次性数据绑定 (bindonce)
May 11 Javascript
详解angular笔记路由之angular-router
Sep 12 Javascript
Angular js 实现添加用户、修改密码、敏感字、下拉菜单的综合操作方法
Oct 24 Javascript
基于jQuery Ajax实现下拉框无刷新联动
Dec 06 jQuery
浅析Visual Studio Code断点调试Vue
Feb 27 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 魔术方法使用说明
2009/10/20 PHP
php简单提示框alert封装函数
2010/08/08 PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
2014/06/12 PHP
Redis使用Eval多个键值自增的操作实例
2016/11/04 PHP
php封装的验证码类分享
2017/02/26 PHP
jquery与js函数冲突的两种解决方法
2013/09/09 Javascript
扩展jQuery对象时如何扩展成员变量具体怎么实现
2014/04/25 Javascript
javascript版的in_array函数(判断数组中是否存在特定值)
2014/05/09 Javascript
js实现的光标位置工具函数示例
2016/10/03 Javascript
JS自定义混合Mixin函数示例
2016/11/26 Javascript
jQuery设置和获取select、checkbox、radio的选中值方法
2017/01/01 Javascript
微信小程序 input输入框详解及简单实例
2017/01/10 Javascript
js实现前端图片上传即时预览功能
2017/08/02 Javascript
使用Python获取CPU、内存和硬盘等windowns系统信息的2个例子
2014/04/15 Python
利用python获取当前日期前后N天或N月日期的方法示例
2017/07/30 Python
python获取微信小程序手机号并绑定遇到的坑
2018/11/19 Python
Python编程快速上手——疯狂填词程序实现方法分析
2020/02/29 Python
Tensorflow使用Anaconda、pycharm安装记录
2020/07/29 Python
html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
2013/06/09 HTML / CSS
DC Shoes官网:美国滑板鞋和服饰品牌
2017/09/03 全球购物
Draper James官网:知名演员瑞茜·威瑟斯彭所创品牌
2017/10/25 全球购物
Topshop法国官网:英国快速时尚品牌
2018/04/08 全球购物
Nike法国官方网站:Nike.com FR
2018/07/22 全球购物
接口可以包含哪些成员
2012/09/30 面试题
职业生涯规划书的格式
2013/12/29 职场文书
珍珠奶茶店创业计划书
2014/01/11 职场文书
运动会入场解说词
2014/02/07 职场文书
新法人代表任命书
2014/06/06 职场文书
学校欢迎标语
2014/06/18 职场文书
单位委托书怎么写
2014/08/02 职场文书
2014年设备管理工作总结
2014/11/26 职场文书
鲁滨孙漂流记读书笔记
2015/06/30 职场文书
老人节主持词
2015/07/04 职场文书
听课评课活动心得体会
2016/01/15 职场文书
javascript拖曳互换div的位置实现示例
2021/06/28 Javascript
python读取mat文件生成h5文件的实现
2022/07/15 Python