• Vue/React在页面展示JSON格式数据可拷贝可展开


    最近公司做了一个词法分析的页面,新增了将后端查询到的词法数据以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. //使用yarn:
    7. $ yarn add vue-json-viewer@2
    8. // Vue2
    9. $ yarn add vue-json-viewer@3
    10. // 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. // 单个.vue文件内部引入
    6. 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.直接在