最近公司做了一个词法分析的页面,新增了将后端查询到的词法数据以JSON格式展示到页面上,并且可以向用户提供拷贝以及展开的功能,于是就用到了vue-json-viewer这个插件。
基于vue写的小伙伴可以使用这个插件:
//使用npm:
$ npm install vue-json-viewer@2 --save
// Vue2
$ npm install vue-json-viewer@3 --save
// Vue3
//使用yarn:
$ yarn add vue-json-viewer@2
// Vue2
$ yarn add vue-json-viewer@3
// 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文件内引入
// main.js全局引入
import Vue from 'vue'
import JsonViewer from 'vue-json-viewer'
Vue.use(JsonViewer)
// 单个.vue文件内部引入
import JsonViewer from 'vue-json-viewer'
3.使用插件
<JsonViewer
:value="resultWord" //对应你需要展示的json数据
expanded //数据是否在页面展开
:expand-depth="5" //搭配expended使用,表示默认在页面展开的数据深度
copyable //显示右上角复制按钮
boxed //为组件添加一个花哨的“盒装”样式(不需要边框就不要加)
sort //显示前排序键
theme="my-awesome-json-theme" // 为主题添加自定义 CSS 类
></JsonViewer>
4.定义my-awesome-json-theme.scss文件引入,或直接在style内修改json展示的样式
//1.在vue文件内部引入my-awesome-json-theme.scss文件
import "@/assets/styles/my-awesome-json-theme.scss";
//2.直接在<style lang="scss" scoped>内部写样式
.my-awesome-json-theme {
....css代码如下
}
.jv-node {
font-size: 14px;
padding: 3px 5px 3px 20px;
border-left: 1px solid rgb(235, 235, 235);
}
.open {
color: rgb(88, 110, 117);
}
.jv-string {
color: rgb(203, 75, 22);
}
.jv-key {
margin-right: 5px;
}
.jv-node.jv-key-node {
margin-left: 6px;
}
.jv-code>.jv-node {
padding-left:5px;
border-left: none;
}
.jv-node.toggle {
margin-left:5px !important
}
.jv-container .jv-code {
padding-left: 0px;
}
|