利用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 相关文章推荐
Dom 学习总结以及实例的使用介绍
Apr 24 Javascript
JS实现模拟风力的雪花飘落效果
May 13 Javascript
javascript图片预加载实例分析
Jul 16 Javascript
JavaScript 闭包详细介绍
Sep 28 Javascript
AngularJS Phonecat实例讲解
Nov 21 Javascript
VueRouter导航守卫用法详解
Dec 25 Javascript
Vue 幸运大转盘实现思路详解
May 06 Javascript
小程序云开发如何实现图片上传及发表文字
May 17 Javascript
微信小程序仿淘宝热搜词在搜索框中轮播功能
Jan 21 Javascript
vue中v-for循环选中点击的元素并对该元素添加样式操作
Jul 17 Javascript
vue-cli3自动消除console.log()的调试信息方式
Oct 21 Javascript
使用js原生实现年份轮播选择效果实例
Jan 12 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 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
2010/08/01 PHP
用php的ob_start来生成静态页面的方法分析
2011/03/09 PHP
PHP 图片上传代码
2011/09/13 PHP
深入php-fpm的两种进程管理模式详解
2013/06/03 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
详解PHP中curl_multi并发的实现
2020/06/08 PHP
JS自动缩小超出大小的图片
2012/10/12 Javascript
框架页面高度自动刷新的Javascript脚本
2013/11/01 Javascript
js子页面获取父页面数据示例
2014/05/15 Javascript
JavaScript导出Excel实例详解
2014/11/25 Javascript
node.js+Ajax实现获取HTTP服务器返回数据
2014/11/26 Javascript
jquery获取多个checkbox的值异步提交给php
2015/07/07 Javascript
纯js模拟div层弹性运动的方法
2015/07/27 Javascript
jQuery实现鼠标悬停背景翻转的黑色导航菜单代码
2015/09/14 Javascript
javascript中this关键字详解
2016/12/12 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
2017/02/14 Javascript
Vue.js 60分钟快速入门教程
2017/03/28 Javascript
详解Node.js 中使用 ECDSA 签名遇到的坑
2018/11/26 Javascript
layui+SSM的数据表的增删改实例(利用弹框添加、修改)
2019/09/27 Javascript
vue 数据操作相关总结
2020/12/17 Vue.js
python利用elaphe制作二维条形码实现代码
2012/05/25 Python
python中requests模块的使用方法
2015/04/08 Python
Pycharm远程调试openstack的方法
2017/11/21 Python
python中abs&amp;map&amp;reduce简介
2018/02/20 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
使用Python实现在Windows下安装Django
2018/10/17 Python
python监测当前联网状态并连接的实例
2018/12/18 Python
selenium+python自动化测试环境搭建步骤
2019/06/03 Python
Python操作MySQL数据库实例详解【安装、连接、增删改查等】
2020/01/17 Python
奢华时尚的独特视角:La Garçonne
2018/06/07 全球购物
求职信格式范本
2013/11/15 职场文书
秋季运动会稿件
2014/01/30 职场文书
初级会计求职信范文
2014/02/15 职场文书
小学优秀班集体申报材料
2014/05/25 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
关于ObjectUtils.isEmpty() 和 null 的区别
2022/02/28 Java/Android