Skip to content

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