2.5.3 • Published 3 years ago

vjform v2.5.3

Weekly downloads
113
License
MIT
Repository
github
Last release
3 years ago

Vue Json form

通过 JSON 呈现任何组件

使用任何 Vue 组件或 html 元素

指南

通过 npm 安装

npm i vjform

项目中引用

import Vue from "vue";
import vjform from "vjform";

Vue.component("vjform", vjform);

基础示例

<template>
  <vjform v-model="model" :schema="schema" :fields="fields"></vjform>
</template>

<script>
export default {
  data() {
    return {
      // 数据 model
      model: {},
      // 验证 model 的 schema
      schema: {
        type: "object",
        properties: {
          firstName: {
            type: "string"
          }
        }
      },
      // Vue 组件或 html 元素组成的数组
      fields: [
        {
          component: "input",
          model: ["firstName"],
          // 参考 Vue 关于 render 的 API [Vue's render functions](https://vuejs.org/v2/guide/render-function.html#The-Data-Object-In-Depth)
          fieldOptions: {
            class: ["form-control"]
            attrs: {
              placeholder: "输入文本"
            }
          }
        }
      ]
    };
  }
};
</script>

表达式示例

支持 bind func array on 转换,具体先看 App.vue 里的示例

<template>
  <vjform v-model="model" :schema="schema" :fields="fields"></vjform>
</template>

<script>
export default {
  data() {
    return {
      // 数据 model
      model: {},
      // 验证 model 的 schema
      schema: {
        type: "object",
        properties: {
          firstName: {
            type: "string"
          }
        }
      },
      // Vue 组件或 html 元素组成的数组
      fields: [
        {
          component: "input",
          model: ["firstName"],
          // 参考 Vue 关于 render 的 API [Vue's render functions](https://vuejs.org/v2/guide/render-function.html#The-Data-Object-In-Depth)
          fieldOptions: {
            class: ["form-control"]
            attrs: {
              placeholder: "输入文本"
            }
          }
        },
        {
          component: 'p',
          fieldOptions: {
            domProps: {
              // 定义一个转换, 显示 model 的 firstName 属性
              innerText: {
                $type: 'bind',
                $source: 'model.firstName'
              }
            }
          }
        }
      ]
    };
  }
};
</script>

特性

  • 支持 Vue 组件和 html 元素
  • 基于 JSON schema 验证 model 数据
  • 定义数据源, 实现更新远程数据和表单提交行为
  • 定义转换, 实现数值绑定和数据监听行为
  • 支持扩展

文档

待更新...

依赖

Ajv

基于 JSON schema 验证 json 格式

Lodash

使用了 get set forEach 等 API

Vue

基于 v2.5.9 测试,理论上支持高于 v2.4.0 版本

Axios

数据源支持基于使用 Axios 更新数据

0.4.2

3 years ago

2.5.3

3 years ago

0.4.3-csp

3 years ago

2.5.2

3 years ago

2.5.2-beta.1

3 years ago

2.5.1-beta.1

3 years ago

2.5.1

3 years ago

2.5.0

3 years ago

2.5.0-beta.2

3 years ago

2.5.0-beta.1

3 years ago

2.4.0

4 years ago

2.4.0-beta.1

4 years ago

2.2.0

4 years ago

2.3.0

4 years ago

2.1.0

4 years ago

2.1.0-beta.3

4 years ago

2.1.0-beta.2

4 years ago

2.1.0-beta.1

4 years ago

2.0.2

4 years ago

2.0.2-beta.2

4 years ago

2.0.2-beta.1

4 years ago

2.0.1

4 years ago

2.0.1-beta.1

4 years ago

2.0.0

4 years ago

2.0.0-beta.5

4 years ago

2.0.0-beta.4

4 years ago

2.0.0-beta.3

4 years ago

2.0.0-beta.2

4 years ago

2.0.0-alpha.3

4 years ago

2.0.0-alpha.2

4 years ago

2.0.0-beta.1

4 years ago

2.0.0-alpha.1

4 years ago

1.4.0-beta.2

4 years ago

1.4.0-beta.1

4 years ago

1.3.2-beta.1

4 years ago

1.3.2-beta.2

4 years ago

1.3.1

4 years ago

1.3.1-beta.2

4 years ago

1.3.1-beta.1

4 years ago

1.3.0

4 years ago

1.3.0-beta.7

4 years ago

1.3.0-beta.6

4 years ago

1.3.0-beta.5

4 years ago

1.3.0-beta.4

4 years ago

1.3.0-beta.2

4 years ago

1.3.0-beta.3

4 years ago

1.3.0-beta.1

4 years ago

1.2.1

4 years ago

1.2.0

4 years ago

1.1.0-beta.4

4 years ago

1.1.0

4 years ago

1.1.0-beta.3

4 years ago

1.1.0-beta.2

4 years ago

1.1.0-beta.1

4 years ago

1.0.0

4 years ago

1.0.0-beta.4

4 years ago

1.0.0-beta.5

4 years ago

1.0.0-beta.3

4 years ago

1.0.0-beta.2

4 years ago

1.0.0-beta.1

4 years ago

0.5.0

4 years ago

0.5.0-beta.5

4 years ago

0.5.0-beta.4

4 years ago

0.5.0-beta.3

4 years ago

0.5.0-beta.2

4 years ago

0.5.0-beta.1

4 years ago

0.4.2-beta.1

4 years ago

0.4.1

4 years ago

0.4.1-beta.6

4 years ago

0.4.1-beta.5

4 years ago

0.4.1-beta.4

4 years ago

0.4.1-beta.3

4 years ago

0.4.1-beta.2

4 years ago

0.4.1-beta.1

4 years ago

0.4.0

4 years ago

0.4.0-beta.2

4 years ago

0.4.0-beta.1

4 years ago

0.3.5

4 years ago

0.3.5-beta.2

4 years ago

0.3.5-beta.1

4 years ago

0.3.4

4 years ago

0.3.4-beta.1

4 years ago

0.3.3

4 years ago

0.3.3-beta.4

4 years ago

0.3.3-beta.3

4 years ago

0.3.3-beta.1

4 years ago

0.3.3-beta.2

4 years ago

0.3.2

4 years ago

0.3.1

4 years ago

0.3.0

4 years ago

0.2.3

4 years ago

0.2.3-beta.1

4 years ago

0.2.3-beta.2

4 years ago

0.2.3-beta.3

4 years ago

0.2.3-beta.4

4 years ago

0.2.3-beta.5

4 years ago

0.2.1

4 years ago

0.1.1

4 years ago

0.2.2

4 years ago

0.1.0

4 years ago