基於JSON模式的表單生成器,帶上您的組件!
沒有預製的組件供您與您的表格產生困惑。取而代之的是,您可以使用發出的任何組件或元素,即自定義或本機。
請注意,從本質上講,使用
v-model的所有VUE組件都會發出input(或類似)事件。有關更多信息,請參見Vue的指南
從NPM安裝
npm install vue-form-json-schema
導入您的應用
import Vue from 'vue' ;
import VueFormJsonSchema from 'vue-form-json-schema' ;
Vue . component ( 'vue-form-json-schema' , VueFormJsonSchema ) ;請注意,如果您不使用WebPack / lollup,並且想使用ESM版本,則需要類似地導入VueFormJSonschema:
import VueFormJsonSchema from 'vue-form-json-schema/dist/vue-form-json-schema.esm.js' ;查看演示或在使用說明中查看最小示例以開始。
如果您使用的是UMD版本,則可以在github repo的
examples文件夾和下面的UMD演示中找到更多示例。
如果您想直接在瀏覽器中使用vue-form-json-schema則可以使用UMD版本。如果在窗口上找到VUE,則UMD版本自動啟動vue-form-json-schema組件。整個模塊也可以在window.VueFormJsonSchema上可用。 VUEFORMJSONSCHEMA,其中命名的導出(例如可以訪問vfjsFieldMixin 。
<script src="https://unpkg.com/vue-form-json-schema@latest/dist/vue-form-json-schema.umd.js"></script>
您可以將vue-form-json-schema@latest用於固定版本,例如[email protected]
<script src="../node_modules/dist/vue-form-json-schema.umd.js"></script>
請注意,所有演示都使用Bootstrap樣式,但是此軟件包中不包含樣式,這取決於您應該使用哪些樣式。
渲染input元素的最少配置。
使用Bootstrap類,以顯示具有不同屏幕尺寸的設備的佈局如何不同。在此示例中,兩個輸入字段將包裹在col-12 col-sm-6類的DIV中。嘗試調整您的瀏覽器窗口大小,也可以看到它的作用。
有時,只有在滿足條件時才能顯示一個字段。使用<transition>提供動畫。
查看如何在vue-form-json-schema中使用自己或第三方VUE組件。
從後端加載表格?查看此示例。
一個更完整的示例,其中有驗證和錯誤消息
上面的註冊表格在另一個密鑰下嵌套了表單模型密鑰
上面的所有示例均在此存儲夾的examples文件夾中使用UMD版本複制。
第一個演示的在線版本
32K未壓縮, 6.5K Gzpipped)Gitbook
對於使用UMD版本,請查看使用UMD版本複制上面所有演示的
examples文件夾
見演示
< template >
< vue-form-json-schema
v-model = "model"
: schema = "schema"
: ui-schema = "uiSchema"
>
</ vue-form-json-schema >
</ template >
< script >
export default {
data ( ) {
return {
// An object which holds the form values
model : { } ,
// A valid JSON Schema object
schema : {
type : 'object' ,
properties : {
firstName : {
type : 'string' ,
} ,
} ,
} ,
// Array of HTML elements or Vue components
uiSchema : [ {
component : 'input' ,
model : 'firstName' ,
// Same API as [Vue's render functions](https://vuejs.org/v2/guide/render-function.html#The-Data-Object-In-Depth)
fieldOptions : {
class : [ 'form-control' ] ,
on : [ 'input' ] ,
attrs : {
placeholder : 'Please enter your first name' ,
} ,
} ,
} ] ,
} ;
}
} ;
< / script >用於使用JSON模式和內部驗證的表單驗證
在整個軟件包中使用get , set和merge 。捆綁尺寸非常重要,並且總是被考慮,因此我們大力將lodash剝離以包括絕對必需品
用v2.5.9測試,但可能會在任何版本上使用> = v2.4.0
options.ajv.locale設置vfs-global Prop ui-schemavfs-component prop ui-schema