# Inversion > __*inversion*__ > > the action of inverting something or the state of being inverted. Inversion is a technique where one injects state and/or life-cycle methods into a render prop. This effectively allows you to have 1. State 2. Life-cycle methods 3. Refs to DOM elements 4. Other objects in JSX tree without having to write stateful React components. - [``](./State.md) — inverts `.state` and `.setState()` method. - [``](./Toggle.md), [``](./Flipflop.md), [``](./Value.md), [``](./Counter.md), [``](./List.md), and [``](./Map.md) - [``](./ShouldUpdate.md) — inverts `.shouldComponentUpdate()` life-cycle method. - [`invert()`](./invert.md) and [``](./invert.md#inverted) — inverts DOM element `ref` reference. ## Example A basic example, `cnt` is incremented by 1 on each click ```jsx {({cnt}, set) =>
set({cnt: cnt + 1})}> {cnt}
} ``` or the same using `` component ```jsx {({value, inc}) =>
{value}
}
```