vue-json-editor可视化编辑器的介绍与应用

vue-json-editor可视化编辑器

最近项目中有用到json编辑器,我选用了这款vue的编辑器,看起来也是比较简洁,接下来就具体介绍一下它,以及内部属性。

一、vue-json-editor的简介

vue-json-editor可以编辑json数据,也可以对其进行格式化,我用于请求报文和响应报文的展示和上传,基本满足想要的功能,界面比较简单。

二、安装vue-json-editor

在目标文件夹中安装插件。

	// 键入命令安装插件
	npm install vue-json-editor

三、引用vue-json-editor

  • 导入vue-json-editor
	// 导入
	import vueJsonEditor from 'vue-json-editor'
	// 局部注册组件
	export default {
	  components: { vueJsonEditor }
	}
  • 页面引用
	// 页面中引用vue-json-editor(应用时删去注释)
	<template>
        <vue-json-editor
         v-model="resultInfo"  // 双向绑定数据
         :showBtns="false"   // 是否展示保存按钮
         :mode="'tree'"   // 默认模式
         lang="zh"  // 语言中文,默认英文
         :expandedOnStart="true" // 是否展开JSON编辑器模式
         @json-change="onJsonChange"  // 改变调用事件
         @json-save="onJsonSave"  // 保存调用事件
        />
	</template>
  • 事件调用
	// json编辑器内容变化
    onJsonChange(value) {
      console.log('value:', value); 
    },
    // json编辑器内容保存
    onJsonSave(value) {
       console.log('value:', value);
    },
  • 添加测试数据
	// 在data中添加测试数据
      resultInfo: {
            "test1": "1234",
            "test2": "5678",
            "test3": {   
                "test3-1":3,
                "test3-2": [
                    {
                        "test3-2-1":"1233",
                        "test3-2-2":"1155"
                    },
                     {
                        "test3-2-3":"1377",
                        "test3-2-4":"1499"
                    }
                ]
          }
      },

四、vue-json-editor界面展示

  • 树结构
    Tree结构
    Tree2结构
    树结构看数据比较直观,还可以添加你想要的类型的数据。
  • 代码结构
    在这里插入图片描述
    代码结构的光标通常会定位在一行的内容前面,但是添加删除内容却是从内容后面开始,跟平常的光标习惯不一样,我个人是不习惯用这个展示结构。
  • 表单结构
    From结构
  • 文本结构
    Text结构
    文本结构,比较好添加和编辑内容,我比较常用,可以粘贴其他数据进来。
  • 视图结构
    View结构

五、vue-json-editor属性

参数说明类型可选值默认值
v-model绑定值object-{}
mode开始时展示结构stringtree,code,form,text,viewtree
showBtns保存按钮是否显示booleantrue,falsetrue
lang语言stringzh(中文),en(英文)en
expandedOnStart在开始时结构为’tree’,‘view’和’form’,是否展开json编辑器booleantrue,falsefalse

六、vue-json-editor事件

事件名称说明
json-change输入内容变化时触发
json-save保存内容变化时触发
has-error输入内容不符合json格式时触发

总体来说,vue的json编辑器还是比较好用的,我是应用在了测试用例模块上,可以将数据写入与后端对接,进行调用。

### 关于 `vue-json-editor` 和其他编辑器组件的只读模式 对于 `vue-json-editor` 组件而言,在官方文档以及社区讨论中并没有直接提供内置的只读属性或方法[^1]。然而,可以通过一些间接的方式实现只读效果: #### 方法一:禁用事件监听 阻止所有可能改变 JSON 数据的操作,比如双击、键盘输入等交互行为。 ```javascript mounted () { const editor = this.$refs.editor; // 禁用所有修改操作 ['dblclick', 'keydown'].forEach(event => { editor.$el.addEventListener(event, (e) => e.preventDefault()); }); } ``` #### 方法二:覆盖样式 通过 CSS 覆盖原有可编辑区域的颜色和指针样式,让用户视觉上感知为不可编辑状态。 ```css /* 设置背景颜色并更改光标 */ .jsoneditor-menu, .jsoneditor-tree .jed-value-cell input[type=text], .jsoneditor-statusbar button { background-color: #f9f9f9 !important; cursor: not-allowed !important; } /* 隐藏添加按钮 */ .jsoneditor-toolbar>.jsoneditor-add { display: none !important; } ``` 需要注意的是上述两种方式并不能真正意义上锁定数据结构防止被篡改;如果需要更严格的控制,则建议考虑使用专门设计用于展示目的而非编辑用途的库替代之。 另外值得注意的是,针对不同的 Vue 编辑器插件(如 `vue2-ace-editor`),通常会存在特定的 API 来启用只读模式。例如,在 `vue2-ace-editor` 中可以直接设置 `readOnly` 属性来开启此功能[^3]。 ```html <template> <div id="app"> <!-- 启用了只读模式 --> <vue-code-mirror v-model="code" :options="{ readOnly: true }"></vue-code-mirror> </div> </template> <script> import { defineComponent } from 'vue'; export default defineComponent({ name: 'App', setup() {}, }); </script> ```
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值