๐งฎ useDerive โ
useDerive
creates a reactive, read-only value from an existing chunk.
It automatically updates whenever the source chunk changes โ perfect for computed or dependent state.
๐ก Example โ
tsx
import { chunk } from "stunk";
import { useDerive } from "stunk/react";
const count = chunk(0);
function DoubleCount() {
const double = useDerive(count, (v) => v * 2);
return <p>Double: {double}</p>;
}
๐ฆ How It Works โ
useDerive(chunk, fn)
โ Takes a chunk and a derive function. โ Returns a computed value that updates when the source changes. โ Only re-renders when the derived result actually changes.
๐งฑ Working with Objects โ
tsx
const user = chunk({ name: "Lara", age: 25 });
function UserAge() {
const ageText = useDerive(user, (u) => `Age: ${u.age}`);
return <p>{ageText}</p>;
}
Even if name
changes, this component wonโt re-render โ only when age
does.
โ
Why Use useDerive
? โ
- Auto-reactive derived values
- Prevents accidental state mutation
- Optimized rendering
- Clean, simple API
Next up โ useComputed
โ for more complex reactive calculations. โก