Fine-grained reactive primitives for building reactive applications.
No virtual DOM. No useEffect. Just pure reactivity.
- 📦 Ultra Lightweight: ~2.4KB minified
- ⚡ Automatic Tracking: Tracks dependencies automatically
- 🔧 Framework-agnostic: Works anywhere
- 💡 Simple: Just
signal()and reactive updates
pnpm add @ochairo/signalsimport { signal } from '@ochairo/signals';
const count = signal(0);
count.value; // Read: 0
count.set(1); // Write: 1const firstName = signal('John');
const lastName = signal('Doe');
const fullName = signal(() => `${firstName.value} ${lastName.value}`);
fullName.value; // "John Doe"const count = signal(0);
count.on((value) => {
console.log(`Count: ${value}`);
});
count.set(1); // Logs: "Count: 1"Made with ❤︎ by ochairo