Vue中 引入使用 vue-json-views

勤奋不是嘴上说说而已,而是实际的行动,在勤奋的苦度中持之以恒,永不退却。业精于勤,荒于嬉;行成于思,毁于随。在人生的仕途上,我们毫不迟疑地选择勤奋,她是几乎于世界上一切成就的催产婆。只要我们拥着勤奋去思考,拥着勤奋的手去耕耘,用抱勤奋的心去对待工作,浪迹红尘而坚韧不拔,那么,我们的生命就会绽放火花,让人生的时光更加的闪亮而精彩。

导读:本篇文章讲解 Vue中 引入使用 vue-json-views,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

项目开发过程中遇到展示 json 的场景,且 json 文件体积过大,小则几百kb。vue-json-views 即使加载 1M 左右的 json 文时,结合deep 深度限制,也能实现秒开的速度,组件压所过后体积只有15.7kb,开启gzip压缩后只有4.74kb。

1. 示例及文档

在线示例
代码地址

git clone https://gitee.com/zhengyis/vue-json-views.git
npm i
npm run dev
// 或 直接双击index.html

2. 安装

npm i -S vue-json-views  // 注意是 views
// 或直接将未编译的组件复制到项目内(推荐该方式,便于自定义修改)

3. 可选配置说明

属性 说明 类型 默认值
json 传入的json数据(必填) Object
closed 是否折叠全部 Boolean false
deep 展开深度,越大渲染速度越慢,建议不超过5) Number 3
icon-style 折叠按钮样式,可选值为 [square, circle, triangle ] String square
icon-color 两个折叠按钮的颜色 Array theme = vs-code 时,[’#c6c6c6’, ‘#c6c6c6’],其他情况为 [’#747983’, ‘#747983’]
theme 可选主题样式,可选值为 [one-dark, vs-code], 不选时为默认的白色主题 String
font-size 字体大小,单位 px Number 14
line-height 行高,单位 px Number 24

注:行高和字体大小不建议选用过大值,因为 icon 大小、每行的 padding-left 等参数并不会随之发生改变

4. 应用

4.1 在 vue 中使用

<template>
  <json-view :data="jsonData"/>
</template>

<script>
import jsonView from 'vue-json-views'

export default {
  components: {
    jsonView,
  },
  data() {
    return {
      // 可使用 JSON.parse() 对json数据转化
      jsonData: {
        name:'dog',
        age:2,
        hobby:{
          eat:{
            food:'狗粮',
            water:'冰可乐'
          },
          sleep:{
            time:'白日梦'
          }
        }
      },
    };
  },
};
</script>

在这里插入图片描述

4.2 在非工程化的项目内引用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
    <script src="build/index.js"></script>
    <style>
        #app{
            height: 400px;
        }
    </style>
</head>
<body>
    <div id="app">
        <json-view :data="json"/>
    </div>
    <script>
        window.onload = function(){
           new Vue({
               el:'#app',
               data(){
                return {
                    json:{}
                }
               },
               components:{
                    jsonView:window['vue-json-view'].default
               }
           })
        }
    </script>
</body>
</html>

5. 关于二次开发

可根据自己项目的实际情况进行如下开发:

  1. 主题定制:根据需求定制主题,不同的主题名称会给组件定义对应的class名称,根据class重新定义样式即可,可参见项目内的主题配置;
  2. 修改icon样式:项目内icon使用的svg,支持三种样式,可自定义更换或者删除不需要的svg文件,以降低打包体积;

推荐阅读: vue-json-editor ( 一款 json 数据编辑插件)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/141415.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!