Introduction

@ngrx-ducks is built to simplify the work with NgRx.

  1. ⚡️ Simpler Action handling through the Ducks refactoring pattern.

  2. 👓 More discoverability through an intuitive & typed API.

  3. 🤗 Fully compatible with NgRx's type system.

Journey

NgRx Ducks already took a long journey. The API has changed a lot in the past, because we want to provide a clean way to work with State Management.

Based on our experiences with our customers' projects, we have improved NgRx Ducks step-by-step. Depending on your Knowledge, your style & your needs, NgRx Ducks can deliver different API-flavours.

Demos

We highly recommend studying the Docs to learn about the API, but to get a taste how working with NgRx Ducks looks like, you can check out several Demo applications.

  1. Counter allowing mutable state mutations manually register reducer in store

Quick Start

Please refer to the Quick Start to learn about NgRx Ducks' building blocks and how it helps to simplify coding NgRx applications.

The following video demonstrates how a NgRx project can be refactored to NgRx Ducks.

Refactor vanilla NgRx (YouTube)

How does it work?

This library acts as a thin layer on top of NgRx. It automatically creates action creators and reducer functions for you. Furthermore, you get a service that you can use in your components. This Service provides a strictly typed API allowing both dispatching actions and selecting data from the Store.

The NgRx Ducks library does not modify the existing behaviour of NgRx. It only instruments the Observable provided by the Store and the Store’s method dispatch.

Since NgRx Ducks only depends on dispatch and the fact that the Store exposes an Observable it is pretty safe that NgRx Ducks remains compatible with NgRx even if a release contains breaking changes. 🙏

Support

This library is used and maintained by co-IT.eu GmbH, a small software consultancy start-up located in Karlsruhe, Germany.