
Vue JSON Schema Form
基于 Vue 、JSON Schema 快速构建一个带完整校验的form表单
# 快速体验
# 安装
npm install --save @lljj/vue-json-schema-form
# 或者:
yarn add @lljj/vue-json-schema-form
<template>
<VueForm
v-model="formData"
:ui-schema="uiSchema"
:schema="schema"
>
</VueForm>
</template>
<script >
// 使用
import VueForm from '@lljj/vue-json-schema-form';
export default {
name: 'Demo',
components: {
VueForm
},
data() {
return {
formData: {},
schema: {
type: 'object',
required: [
'userName',
'age',
],
properties: {
userName: {
type: 'string',
title: '用户名',
default: 'Liu.Jun',
},
age: {
type: 'number',
title: '年龄'
},
bio: {
type: 'string',
title: '签名',
minLength: 10,
default: '知道的越多、就知道的越少',
}
}
},
uiSchema: {
bio: {
'ui:options': {
placeholder: '请输入你的签名',
type: 'textarea',
rows: 1
}
}
}
};
}
};
</script>
运行如下:
# DEMO
# 相关资料
JSON Schema | Vue | Element Ui
# 为何开发
原本是在很久前公司流产的项目类似淘宝店铺装修,也可以叫做前端可视化编辑。为了解决数据配置表单的通用性,所以使用json-schema描述数据结构,动态生成表单。
这样做的好处除了解决在每个配置表单的重复工作,服务端也可以基于同一份schema保持和前端一致的校验规则,不过对于使用 vue elementUi并未找到合适库可以直接使用,所以在后面一段时间决定自己实现一个 ..