vue中json格式化显示数据(vue-json-viewer)
作者:白桃与猫
这篇文章主要给大家介绍了关于vue中json格式化显示数据(vue-json-viewer)的相关资料,Vue-json-viewer是一个Vue组件,用于在Vue应用中显示JSON数据的可视化工具,需要的朋友可以参考下
1. 安装
使用npm:
$ npm install vue-json-viewer@2 --save // Vue2 $ npm install vue-json-viewer@3 --save // Vue3
使用yarm:
$ yarn add vue-json-viewer@2 // Vue2 $ yarn add vue-json-viewer@3 // Vue3
使用pnpm也可以
2. 使用方法
在main.ts中注册插件
import { createApp } from 'vue'; import JsonViewer from 'vue-json-viewer' import App from './App.vue'; const app = createApp(App); app.use(JsonViewer ) app.mount('#app');
在界面中使用
<template> <json-viewer :value="data" :expand-depth="5" copyable boxed sort class="w-100%"></json-viewer> </template> <script setup lang="ts"> const data = {// 注意:绑定得数据一定是JSON,而不是JSON字符串 total: 25, limit: 10, data: [ { id: '5968fcad629fa84ab65a5247', firstname: 'Ada', lastname: 'Lovelace', }, ], }; </script>
注意:在main.ts文件中可能会出现以下得ts类型报错:
无法找到模块“vue-json-viewer”的声明文件。
解决方法:
- 先尝试安装
npm i --save-dev @types/vue-json-viewer
- 如果上面方法不行,在全局的
.d.ts
结尾的文件中添加上declare module 'vue-json-viewer'
3. json-viewer属性和方法
json-viewer属性:
json-viewer事件监听:
json-viewer插槽:
json-viewer快捷键:
4. 表格中原始数据和格式化数据切换
实现:给表格中每行数据单独添加一个变量,用于单独控制展示的方式。
//获取到表格数据后,添加一个自定义变量,记录json显示的方式 state.tableData.forEach((item) => { item.showJsonView = false; });
<!--el-table-column 插槽中 --> <template #default="scope"> <div v-if="col.key === 'accountConfig'"> <el-link type="primary" :underline="false" @click="() => (scope.row.showJsonView = !scope.row.showJsonView)"> {{ scope.row.showJsonView ? '原始数据' : '格式化数据' }} </el-link> <div v-if="scope.row.showJsonView"> <json-viewer :value="JSON.parse(scope.row[col.key])" :expand-depth="1" copyable></json-viewer> </div> <div v-else> <pre class="text-pre-wrap">{{ scope.row[col.key] }}</pre> </div> </div> <div v-else> {{ scope.row[col.key] }} </div> </template>
注:如果表格中有el-switch
, 单独控制每行的操作,请求时显示的loading
,也是同样的方法实现。
5. 自定义主题:
- 添加
theme="my-awesome-json-theme"
到JsonViewer的组件属性上 - 复制粘贴下面的模板并且根据自定义的theme名称做对应调整。
// values are default one from jv-light template .my-awesome-json-theme { background: #fff; white-space: nowrap; color: #525252; font-size: 14px; font-family: Consolas, Menlo, Courier, monospace; .jv-ellipsis { color: #999; background-color: #eee; display: inline-block; line-height: 0.9; font-size: 0.9em; padding: 0px 4px 2px 4px; border-radius: 3px; vertical-align: 2px; cursor: pointer; user-select: none; } .jv-button { color: #49b3ff } .jv-key { color: #111111 } .jv-item { &.jv-array { color: #111111 } &.jv-boolean { color: #fc1e70 } &.jv-function { color: #067bca } &.jv-number { color: #fc1e70 } &.jv-number-float { color: #fc1e70 } &.jv-number-integer { color: #fc1e70 } &.jv-object { color: #111111 } &.jv-undefined { color: #e08331 } &.jv-string { color: #42b983; word-break: break-word; white-space: normal; } } .jv-code { .jv-toggle { &:before { padding: 0px 2px; border-radius: 2px; } &:hover { &:before { background: #eee; } } } } }
总结
到此这篇关于vue中json格式化显示数据(vue-json-viewer)的文章就介绍到这了,更多相关vue中json格式化显示内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!