• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Vue/React 展示JSON 可拷贝可展开

武飞扬头像
SunFlower914
帮助1

最近公司做了一个词法分析的页面,新增了将后端查询到的词法数据以JSON格式展示到页面上,并且可以向用户提供拷贝以及展开的功能,于是就用到了vue-json-viewer这个插件。

基于vue写的小伙伴可以使用这个插件:

  1.  
    //使用npm:
  2.  
    $ npm install vue-json-viewer@2 --save
  3.  
    // Vue2
  4.  
    $ npm install vue-json-viewer@3 --save
  5.  
    // Vue3
  6.  
     
  7.  
    //使用yarn:
  8.  
    $ yarn add vue-json-viewer@2
  9.  
    // Vue2
  10.  
    $ yarn add vue-json-viewer@3
  11.  
    // Vue3

基于React写的小伙伴可以使用这个插件:

npm install -D react-json-view

下面分别向大家展示实现的效果:

Vue:

学新通

 React:

学新通

 下面着重向大家展示在vue3基础上实现步骤:

附官网地址:vue-json-viewer - npmvuejs展示json的组件. Latest version: 2.2.22, last published: 5 months ago. Start using vue-json-viewer in your project by running `npm i vue-json-viewer`. There are 88 other projects in the npm registry using vue-json-viewer.学新通https://www.npmjs.com/package/vue-json-viewer#theming

1.安装vue-json-viewer插件

2.引入插件

        这里大家可以选择全局引入插件或在单个vue文件内引入

  1.  
    // main.js全局引入
  2.  
    import Vue from 'vue'
  3.  
    import JsonViewer from 'vue-json-viewer'
  4.  
    Vue.use(JsonViewer)
  5.  
     
  6.  
    // 单个.vue文件内部引入
  7.  
    import JsonViewer from 'vue-json-viewer'

3.使用插件

  1.  
    <JsonViewer
  2.  
    :value="resultWord" //对应你需要展示的json数据
  3.  
    expanded //数据是否在页面展开
  4.  
    :expand-depth="5" //搭配expended使用,表示默认在页面展开的数据深度
  5.  
    copyable //显示右上角复制按钮
  6.  
    boxed //为组件添加一个花哨的“盒装”样式(不需要边框就不要加)
  7.  
    sort //显示前排序键
  8.  
    theme="my-awesome-json-theme" // 为主题添加自定义 CSS 类
  9.  
    ></JsonViewer>

4.定义my-awesome-json-theme.scss文件引入,或直接在style内修改json展示的样式

  1.  
    //1.在vue文件内部引入my-awesome-json-theme.scss文件
  2.  
    import "@/assets/styles/my-awesome-json-theme.scss";
  3.  
    //2.直接在<style lang="scss" scoped>内部写样式
  4.  
    .my-awesome-json-theme {
  5.  
    ....css代码如下
  6.  
    }
  1.  
    .jv-node {
  2.  
    font-size: 14px;
  3.  
    padding: 3px 5px 3px 20px;
  4.  
    border-left: 1px solid rgb(235, 235, 235);
  5.  
    }
  6.  
    .open {
  7.  
    color: rgb(88, 110, 117);
  8.  
    }
  9.  
    .jv-string {
  10.  
    color: rgb(203, 75, 22);
  11.  
    }
  12.  
    .jv-key {
  13.  
    margin-right: 5px;
  14.  
    }
  15.  
    .jv-node.jv-key-node {
  16.  
    margin-left: 6px;
  17.  
    }
  18.  
    .jv-code>.jv-node {
  19.  
    padding-left:5px;
  20.  
    border-left: none;
  21.  
    }
  22.  
    .jv-node.toggle {
  23.  
    margin-left:5px !important
  24.  
    }
  25.  
    .jv-container .jv-code {
  26.  
    padding-left: 0px;
  27.  
    }
学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgagkic
系列文章
更多 icon
同类精品
更多 icon
继续加载