前端高颜值展示 JSON 数据?你这反向优化啊?

科技   2024-10-13 11:04   广东  

前言

大家好,我是林三心,用最通俗易懂的话讲最难的知识点是我的座右铭,基础是进阶的前提是我的初心~

最近公司内部需要做一个后台缓存的可视化平台,其实后台缓存都是一些JSON数据,所以其实是需要做一个 JSON 展示页面

前后使用了两个 JSON 展示库,跟大家分享一下

vue3-json-viewer

首先需要安装这个库 vue3-json-viewer

pnpm install vue3-json-viewer

在main文件中全局引入

import JsonViewer from "vue3-json-viewer";
import "vue3-json-viewer/dist/index.css"// 引入样式

app = createApp(App);
app.use(JsonViewer)

在页面中去使用




这个库展示 JSON 是挺好看的,看以下结果

但是它有一个缺点就是,它展示的 JSON 数据是延迟加载的,当数据多的时候,请看以下,这个库为了性能优化,所以当数据量大的时候,后面的节点都是采用 延迟加载的方式

虽然这样能优化渲染性能,但是有一个很大的缺点,那就是后面的节点无法被及时搜索到

因为产品经理说,使用者喜欢使用浏览器的 Ctrl + F掉出搜索框,来搜索缓存数据,但是如果延迟加载的话,那么后面的数据肯定无法被及时搜索到

json-editor-vue3

考虑到上面那些之后,最后还是选择了 json-editor-vue3

pnpm install json-editor-vue3
import Vue from 'vue'
import JsonEditorVue from 'json-editor-vue3'
 
Vue.use(JsonEditorVue)

由于 json-editor-vue3 使用的是 commonjs 的方式,所以你直接在 Vite 项目中使用的话,会报错 does not provide an export named 'default',不要慌,只需要按照下面去做

// vite.config.js
import { viteCommonjs } from '@originjs/vite-plugin-commonjs'
export default defineConfig({
  plugins: [vue(),viteCommonjs()],
})

页面中使用

可以看到当 currentMode = "code"时,就是纯文本模式,这个时候,这个插件会帮我们一次性加载所有的 JSON 数据,而不是延迟加载,这样的话数据就能被使用者及时搜索到了!

而且这个库还提供了筛选、模式切换、全屏、编辑等实用功能

结语

我是林三心,一个待过小型toG型外包公司、大型外包公司、小公司、潜力型创业公司、大公司的作死型前端选手,感谢您的阅读~

前端之神
一位前端小菜鸡,写过400多篇原创文章,全网有6w+个前端朋友,梦想是成为”前端之神“~
 最新文章