Signal-native reactivity
Powered by alien-signals — only the exact DOM nodes that depend on a changed signal update. Zero wasted renders.
Most view libraries pay a per-update tax: reconcile a virtual DOM, diff component trees, patch the real DOM. @neutro/view skips all of that. Signals track exactly which DOM nodes depend on which values — when a signal changes, only those nodes update. No diffing pass, no component re-render, no scheduler.
const Counter = $component(() => {
$script(() => {
const count = signal(0)
})
$render(() => html`
<div>
<p>${count}</p>
<button @click="${() => count = count + 1}">+</button>
</div>
`)
})Write natural signal reads and assignments — the compiler erases them to efficient accessor calls at build time. No manual .get() / .set().
Get Started | API | Guides
@neutro/view is part of the Neutro collection — focused, zero-dependency primitives for the web.
@neutro/view — the library you're reading about now@neutro/form — zero-dependency reactive form engine for every framework@neutro/fluid (coming soon) — a physics-grounded glass material system for the webIf this library saves you time, consider supporting its development:
Found a bug or have a feature request? Open an issue on GitHub.