Update multiple signals at once. Prevent unnecessary re-renders and boost speed!
Batching means grouping multiple updates together so your UI only re-renders ONCE instead of multiple times. It's like buying groceries - one trip vs three trips! 🛒
Because re-rendering is expensive! Each re-render uses CPU, drains battery, and can cause lag.
3 re-renders → 1 re-render = 3x speed boost per update
Less CPU work = longer battery life on mobile devices
No janky animations or delayed interactions
// Each line triggers a re-render
setName('Alice'); // Re-render #1
setAge(25); // Re-render #2
setCity('NYC'); // Re-render #3
// Total: 3 re-renders 😰// Wrap in batch()
batch(() => {
setName('Alice');
setAge(25);
setCity('NYC');
});
// Total: 1 re-render! 🚀⚡ Rule of thumb: If updating 2+ signals together, use batch()!
The render counter shows how many times your component re-rendered
👆 Click the buttons above and watch the render count! Batching keeps it low 🚀
import { useSignal } from 'signalforge/react';
import { batch } from 'signalforge/core';
const [count1, setCount1] = useSignal(0);
const [count2, setCount2] = useSignal(0);
// ❌ Without batch - multiple re-renders
setCount1(count1 + 1);
setCount2(count2 + 1);
// ✅ With batch - single re-render
batch(() => {
setCount1(count1 + 1);
setCount2(count2 + 1);
});