مولد النموذج القائم على مخطط JSON ، أحضر مكوناتك!
لا توجد مكونات مسبقة لك لتتمكن من لغز النموذج الخاص بك مع. بدلاً من ذلك ، يمكنك استخدام أي مكون أو عنصر ينبعث منه حدث أو مخصص أو أصلي.
لاحظ أن جميع مكونات VUE التي تستخدم
v-modelتنبعث منها حدث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 / Rollup وترغب في استخدام إصدار ESM ، فأنت بحاجة إلى استيراد VueFormJsonsChema مثل هذا:
import VueFormJsonSchema from 'vue-form-json-schema/dist/vue-form-json-schema.esm.js' ;تحقق من العروض التوضيحية أو انظر مثالًا بسيطًا في تعليمات الاستخدام للبدء.
إذا كنت تستخدم إصدار UMD ، فيمكنك العثور على المزيد من الأمثلة في مجلد
examplesمن GitHub Repo و UMD Demo أدناه.
إذا كنت ترغب في استخدام vue-form-json-schema مباشرة في متصفح ، فيمكنك القيام بذلك باستخدام إصدار UMD. يقوم الإصدار UMD بتثبيت مكون vue-form-json-schema إذا تم العثور على Vue على النافذة. تتوفر الوحدة بأكملها أيضًا على window.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 لإظهار كيف يمكن أن يكون التخطيط مختلفًا للأجهزة ذات أحجام شاشة مختلفة. في هذا المثال ، سيتم لف حقلين للإدخال داخل DIV مع فئات col-12 col-sm-6 . حاول تغيير حجم نافذة المتصفح أيضًا ، انظر إلى العمل.
في بعض الأحيان ، يجب إظهار الحقل فقط إذا تم استيفاء حالة. يستخدم <transition> لتوفير الرسوم المتحركة.
تعرف على كيفية استخدام مكونات VUE الخاصة بك أو ثالثة في vue-form-json-schema .
تحميل النموذج من الواجهة الخلفية؟ تحقق من هذا المثال.
مثال أكثر اكتمالا مع رسائل التحقق من الصحة والخطأ
نموذج التسجيل أعلاه حيث تتداخل مفاتيح نموذج النموذج تحت مفتاح آخر
يتم نسخ جميع الأمثلة المذكورة أعلاه باستخدام إصدار UMD في مجلد examples من هذا الريبو.
النسخة عبر الإنترنت من العرض التوضيحي الأول
32K غير مضغوط ، 6.5K بايت)gitbook
لاستخدام إصدار UMD ، تحقق من مجلد
examplesحيث يتم نسخ جميع العروض التوضيحية أعلاه باستخدام إصدار UMD
انظر العرض التوضيحي
< 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.localevfs-global Prop ui-schemavfs-component Prop ui-schema