For the complete documentation index, see llms.txt. This page is also available as Markdown.

useProp

Reactivity in the scope of the webcomponent without the use of context(this)

useProp allows you to work with a prop(property) of the webcomponent in a similar way to useState.

Syntax

const [value, setValue] = useProp(myProp);

Where :

  • value: Current value of the prop.

  • setValue: Callback to update the value of the prop.

  • myProp: string, defines the name of the prop to be used by the hook.

Example

import { useProp } from "atomico";

function useCounter(prop) {
  const [value, setValue] = useProp(prop);
  return {
    value,
    increment: () => setValue((value) => value + 1),
    decrement: () => setValue((value) => value - 1),
  };
}

function component() {
  const counter = useCounter("value");
  return (
    <host>
      <button onClick={counter.increment}>+</button>
      <strong>{counter.value}</strong>
      <button onClick={counter.decrement}>-</button>
    </host>
  );
}

component.props = {
  value: { type: Number, value: 0 },
};

Where:

  1. useCounter is a customHook and that it can work with any property of the webcomponent of type Number.

  2. useCounter returns 2 methods increment and decrement that modify the value of the prop.

  3. useCounter can be instantiated multiple times for different properties.

Last updated

Was this helpful?