fform: React & JSONSchema - أقصى مرونة

fform


شكل Flexibile (fform) هو منشئ النماذج مع الحد الأدنى من التكرار للرمز ، في حين أنه مرن للغاية وقابل للتوسعة. رصة التكنولوجيا المستخدمة: React (v16) ، Redux (اختياري) ، JSONSchema ، TypeScript . الفكرة الرئيسية هي الحد الأقصى الممكن لإعادة استخدام الدوائر والمكونات والوظائف.


ملامح


  • 98 كيلو بايت مصغر ، 28 كيلو بايت مضغوط
  • بداية سريعة مصمم النموذج
  • الجمع بين وإعادة استخدام النماذج أو أجزاء منها عند استخدام الخصائص oneOf ، allOf ، $ref
  • التحقق من صحة المزامنة / المزامنة / JSON / إرسال
  • دعم استعادة الأصلية ، ولكن من الممكن استخدام أي تخزين آخر (بما في ذلك الداخلية)
  • الدعم الكامل للصفائف (إضافة / إزالة / نقل)
  • المدمج في عارض
  • عناصر نموذج قابلة للتخصيص والإضافة بالكامل
  • دعم SSR
  • لا توجد تبعيات (التفاعل كخارج خارجي)

نظرًا لأنه وفقًا لمواصفات JSONSchema ، يتم تعريفه بالبيانات فقط بتنسيق JSON ، في النموذج يتم تعريف النموذج بكائنين :


  • مخطط JSONSchema (مسودة الإصدار 4 ، مع خصائص إضافية) يحتوي على بيانات JSON فقط ويصف حقول النموذج وموقع الكائنات مثل الأزرار والروابط وعلامات التبويب وما إلى ذلك.
  • عنصر عناصر يحتوي على مكونات React (v16) ، وظائف ، أجزاء متكررة الاستخدام من المكونات ، ومن حيث المبدأ ، أي js أو كود JSON آخر يمكن الرجوع اليه من أي جزء من عنصر العناصر أو من المجالات الموسعة لعنصر JSONSchema. في جوهرها ، تعتبر العناصر مستودعًا لطوب الشفرة التي يتم تجميع النموذج بالكامل منها ، ويتم تحديد درجة عنصري هذه السرو بواسطة المطور.

يتم تطبيق المرونة والامتداد وإعادة تطبيق الدوائر والمكونات والوظائف الجاهزة على النحو التالي:


  • توسيع المخططات باستخدام خصائص المرجع $ و allOf كما هو موضح في مواصفات JSONSchema . رابط إلى مثال .
  • توسيع كائن العناصر باستخدام مبدأ مماثل ، ولكن مع بناء جملة مختلف (للتمييز بصريًا حيث يتم توسيع المخطط وأين يتم توسيع العناصر). وثائق . رابط إلى مثال .
  • تستخدم معالجات البيانات والأحداث توجيهات الإخراج من وظائف js بنفس الطريقة التي يستخدمها نظام التشغيل linux. يتم تغذية ناتج إحدى الوظائف بإدخال الوظيفة التالية ، والتي (مع التقسيم الصحيح لمسؤوليات الوظائف) تتيح لك إعادة استخدام الوظائف الحالية ، وإضافة وظائف جديدة فقط إذا كانت الوظيفة التي لم يتم تنفيذها بعد مطلوبة. وثائق . رابط إلى مثال .

مراجع


Source: https://habr.com/ru/post/ar466179/


All Articles