๐งฎ 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. โก