في هذه المقالة، سأناقش كيفية تطوير مكونات الويب القابلة لإعادة الاستخدام باستخدام مكتبة Fusor وفوائد القيام بذلك.
يمكن بعد ذلك تجميع هذه المكونات في تطبيقات ويب كاملة على قدم المساواة مع تلك التي تم إنشاؤها باستخدام React، Angular، Vue، Solid، Svelte، وغيرها.
تتكون واجهة Fusor API من وظيفتين رئيسيتين فقط:
إنشاء عنصر DOM
import { getElement } from "@fusorjs/dom"; const count = 0; // Create via JSX const message =لقد استخدمنا وظائفSeconds {count} elapsed; document.body.append(getElement(message)); // Get
إنشاء والحصول على وظائف واجهة برمجة التطبيقات.
إنشاء بديل غير JSXimport { getElement } from "@fusorjs/dom"; const count = 0; // Create via JSX const message =تحديث عنصر DOMSeconds {count} elapsed; document.body.append(getElement(message)); // Get
import { getElement } from "@fusorjs/dom"; const count = 0; // Create via JSX const message =استخدمنا وظيفةSeconds {count} elapsed; document.body.append(getElement(message)); // Get
update API. يقوم بتحديث عنصر DOM وجميع أبنائه بشكل متكرر . يقوم باسترداد قيم جديدة من نتائج الوظائف، مما يجعلها ديناميكية.
يمكن أن تكون جميع العناصر الفرعية والسمات والخصائص ديناميكية.
import { getElement } from "@fusorjs/dom"; const count = 0; // Create via JSX const message =لن تحدث تحديثات DOM إلا إذا كانت القيم الجديدةSeconds {count} elapsed; document.body.append(getElement(message)); // Get
تختلف عن القيم الحالية.
إعداد المعلمات
import { getElement } from "@fusorjs/dom"; const count = 0; // Create via JSX const message =ومع ذلك، في بعض الأحيان ستحتاج إلى التمييز بينSeconds {count} elapsed; document.body.append(getElement(message)); // Get
السمات و الخصائص. لتحديد نوع، يمكنك إضافة لاحقات _a أو _p إلى أسمائهم:
import { getElement } from "@fusorjs/dom"; const count = 0; // Create via JSX const message =لإضافةSeconds {count} elapsed; document.body.append(getElement(message)); // Get
معالج الأحداث، يجب عليك دائمًا استخدام لاحقة _e:
import { getElement } from "@fusorjs/dom"; const count = 0; // Create via JSX const message =هناك أنواع إضافية، وبعضها يمكن أن يأخذ خياراتSeconds {count} elapsed; document.body.append(getElement(message)); // Get
إضافية لضمان التوافق الكامل مع معايير W3C:
import { getElement } from "@fusorjs/dom"; const count = 0; // Create via JSX const message =إنشاء مكون قابل لإعادة الاستخدامSeconds {count} elapsed; document.body.append(getElement(message)); // Get
إليك مثال لمكون زر العد:
ثلاثة أزرار للعد
import { getElement } from "@fusorjs/dom"; const count = 0; // Create via JSX const message =يقوم مكون CountingButton بتحديثSeconds {count} elapsed; document.body.append(getElement(message)); // Get
جزء فقط من عنصر DOM الخاص به دون التأثير على بقية التطبيق.
بمجرد أن تفهم تمامًا كيفية عمل المكون أعلاه، يمكنك إعادة كتابته بطريقةأقصر قليلاً مع تحقيق نفس النتيجة:
import { getElement } from "@fusorjs/dom"; const count = 0; // Create via JSX const message =تستقبل كل وظيفة رد اتصال لمعالج الأحداث وسيطتين: كائن الحدث القياسي والكائن الخاص الحالي.Seconds {count} elapsed; document.body.append(getElement(message)); // Get
مرة أخرى، إذا فهمت المثال أعلاه، فراجع الإصدار
الأقصر من نفس المكون:
import { getElement } from "@fusorjs/dom"; const count = 0; // Create via JSX const message =لقد أضفنا خيار التحديث لتحديث المكون بعد استدعاء رد اتصال معالج الحدث، وهو ما يعادل المثال السابق.Seconds {count} elapsed; document.body.append(getElement(message)); // Get
دورة الحياة
ويتكون من أربع مراحل فقط:
import { getElement } from "@fusorjs/dom"; const count = 0; // Create via JSX const message =تحتوي خاصية التحميل على وظيفة يتم تشغيلها عند إضافة المكون إلى DOM. تأخذ هذه الوظيفة وسيطة واحدة: الكائن الخاص الحالي. ويمكنه أيضًا إرجاع دالة أخرى يتم تشغيلها عند إزالة المكون من DOM.Seconds {count} elapsed; document.body.append(getElement(message)); // Get
نحن نتحكم بشكل كامل في هذه المراحل الأربع من دورة الحياة. يتيح لنا ذلك إنشاء المكونات وتحديثها و
مقارنتها باستخدام طرق مخصصة غير متزامنة أو متزامنة، مع وضع الاستراتيجيات وإطارات الرسوم المتحركة المختلفة في الاعتبار.
بهذا يختتم البرنامج التعليميمن وظائف واجهة برمجة التطبيقات (API). ومع ذلك، فهو يوفر أيضًا قدرًا كبيرًا من التحكم والمرونة عند الحاجة. لذا، للإجابة على السؤال الموجود في العنوان، Fusor هي مكتبة جافا سكريبت صغيرة، وليست إطارًا، ولكنها يمكنها تحقيق نفس النتائج مثل الأطر الأخرى.
ابدأ الترميز
راجع أيضًا مثال الساعة التناظرية SVG.
إليك تطبيقًا حقيقيًا.
المشاريع النموذجية المبدئية:
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3