Performance
virtualScroll()#
content-visibility: auto virtualization, or { mode: 'window' } for DOM recycling (100k rows → ~30 nodes, scrollToIndex())
lazy()#
viewport-based lazy loading with skeleton
Effect lanes#
effect(fn, { flush: 'micro' | 'frame' }) coalesces bursts of writes into one run per microtask / frame; flush() drains them synchronously
Hydration strategies with arguments#
data-aegis-load="visible(300px)", "idle(1500)", "interaction(click,keydown)" — one shared IntersectionObserver, the waking event is replayed after mount
stats()#
flushes, effect runs, live scopes/effects, cache sizes; dev.profile() marks every flush in the Performance panel
Event delegation, opt-in#
configure({ delegateEvents: ['click', 'input', 'keydown'] }): one document listener per type, handlers stay on the element with native bubbling order and stopPropagation; @click.direct for widgets that swallow events
Layout as signals#
size(el), inView(el), viewport() (observers, never getBoundingClientRect inside an effect)