Skip to main content

web-component-performance

Guides performance testing for native Web Components and custom elements. Use when measuring custom element registration, upgrade cost, connected/disconnected callbacks, attributeChangedCallback churn, Shadow DOM work, slots, or fig-* component scalability.

معلومات المصدر

المستودع
rogie/figui3
آخر نشاط في المصدر
٧ يونيو ٢٠٢٦ في ٠٢:٢٣
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٦٦
التفرعات
١

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
web-component-performance
description
Guides performance testing for native Web Components and custom elements. Use when measuring custom element registration, upgrade cost, connected/disconnected callbacks, attributeChangedCallback churn, Shadow DOM work, slots, or fig-* component scalability.
# Web Component Performance Measure custom element performance in real browsers. Pair this with `web-component-testing` when validating both behavior contracts and performance regressions. ## Hot Paths - `customElements.define` and `customElements.whenDefined` during boot. - Initial upgrade of many existing elements. - `connectedCallback` and `disconnectedCallback` during repeated mount/unmount. - `attributeChangedCallback` and property setters during state sync. - Shadow DOM creation, slot distribution, and internal event wiring. - Form-style event emission during fast interactions. ## Test Pattern 1. Create a scaled fixture with representative `fig-*` markup. 2. Wait for definitions, then separate upgrade timing from interaction timing. 3. Measure repeated mount/unmount cycles for cleanup and callback cost. 4. Stress public APIs: attributes, properties, slots, and user interactions. 5. Assert no page errors, no console errors, correct final state, and bounded timing. ## Useful Checks - Count how many times lifecycle callbacks run for one user-visible operation. - Verify attribute writes do not emit user interaction events unless the component contract says so. - Compare one component vs many components in the same page to catch nonlinear scaling. - Test overlay/picker components with nested popups because geometry work can multiply. - Confirm cleanup by removing hosts, re-adding them, and checking events are not duplicated. ## Fix Preferences - Avoid rebuilding Shadow DOM when a targeted text/style/value update is enough. - Coalesce repeated attribute/property sync when the public contract allows it. - Keep event listeners stable and remove external listeners in `disconnectedCallback`. - Prefer public host state for tests; inspect internals only to prove a suspected performance issue. ## Avoid - Measuring autonomous custom elements in jsdom. - Benchmarking constructors alone when the real cost is upgrade plus connected work. - Adding caches that make attribute/property reflection stale. - Changing public event timing to pass a benchmark.
عرض على GitHub