The best of both worlds
Use your favourite reactive primitives to manage state. Use Reacts reconciliation model to manage UI.
⚠️ In development ⚠️
Impact is born from the experience of building rich complex productivity applications. Their complexity is not primarily in data fetching, but managing a dynamic and highly interactive user interface on the client. Reactive primitives has helped us solve performance challenges while keeping us sane expressing all this complexity. At the same time these reactive primitives have forced us out of React and into a global scope. With Impact you can use the reactive primitives you know and love and replace the reconciling state management in React with intuitive and performant primitives.
🍿 Impact Presentation 🍿 - 🍿 Impact Technical Deep Dive 🍿
If you have used Impact in an application or you think it has valuable perspectives or concepts for a discussion, please use the Template Slides Deck. Present Impact at your company, a local meetup or at a conference. Please reach out if you have any questions or think the slide deck should be updated.
Impact Signals - documentation - Get started template
npm install @impact-react/signals
Mobx - documentation
npm install @impact-react/mobx
Preact Signals - documentation
npm install @impact-react/preact
Legend State - documentation
npm install @impact-react/legend
Babel Config
{
// "plugins": ["@impact-react/signals/transform"]
"plugins": ["@impact-react/*/transform"]
}
INFO
All component functions which calls a hook ending with the name Store
will be wrapped in the related observer
. That means all your store hooks needs to end with Store
, for example useAppStore
or useGlobalStore
.