NGXS is a state management pattern + library for Angular
- ✨ Learn about it on the docs site
- 💬 Ask a question in our Discord server (we are migrating from our slack server).
- 🚀 See it in action on Stackblitz
- 😎 Checkout the sample application
- 🔧 Scaffolding application using NGXS Schematics
- 📖 Read the blog posts
- ⚡️ Development of NGXS Labs
- 📝 Learn about updates from the changelog
- ❤️ Give back by becoming a Contributor or a Sponsor
- 👂 We would love to hear about your experience with NGXS, you can leave your feedback here
NGXS tries to make things as simple and accessible as possible. There can be a lot of boilerplate code in state management, thus a main goal of NGXS is to reduce boilerplate allowing you to do more things with less. It is also not necessary to be super familiar with RxJs.
The idea with this github organisation is to provide a place for the community to create libraries that augment the main framework with functionality that does not need to be integrated directly into the framework and therefore can evolve through their initial iterations of experimentation without affecting the main @ngxs/store library.
To get started locally, follow these instructions:
- If you haven't done it already, make a fork of this repo.
- Clone to your local computer using git.
- Make sure that you have installed NodeJS.
- Make sure that you have yarn installed.
- Run
yarn install
. - Run
yarn build:packages
.
- Run development mode
yarn build:packages --package store --watch
- Run serve integration examples
yarn start
- ...development...
- Run tests
yarn test:ci
- Create pull request
- Create a new project folder
packages/my-super-plugin
- Create template library with ngPackagr
- Add your project to package.json
- Run development mode
yarn build:packages --package my-super-plugin --watch
- ...development...
- Run build
yarn build:packages --package my-super-plugin
- Run tests
yarn test:ci
- Create pull request
If you have ideas for creating unique libraries, you can join us. Email us at ngxs.lead@gmail.com
. Or you can email us on Twitter or Slack.
Project | Package | Version | Links |
---|---|---|---|
NGXS CLI | @ngxs/cli |
||
NGXS Schematics | @ngxs/schematics |
Project | Package | Version | Links |
---|---|---|---|
NGXS Store | @ngxs/store |
||
NGXS Logger-plugin | @ngxs/logger-plugin |
||
NGXS Devtools-plugin | @ngxs/devtools-plugin |
||
NGXS WebSocket-plugin | @ngxs/websocket-plugin |
||
NGXS Form-plugin | @ngxs/form-plugin |
||
NGXS Router-plugin | @ngxs/router-plugin |
||
NGXS Storage-plugin | @ngxs/storage-plugin |
||
NGXS HMR | @ngxs/hmr-plugin |
Project | Package | Version | Links |
---|---|---|---|
NGXS-labs Data | @ngxs-labs/data |
||
NGXS-labs Emitter | @ngxs-labs/emitter |
||
NGXS-labs Immer adapter | @ngxs-labs/immer-adapter |
||
NGXS-labs Dispatch decorator | @ngxs-labs/dispatch-decorator |
||
NGXS-labs Select snapshot decorator | @ngxs-labs/select-snapshot |
||
NGXS-labs Async storage plugin | @ngxs-labs/async-storage-plugin |
||
NGXS-labs Entity state | @ngxs-labs/entity-state |
||
NGXS-labs Testing tools | @ngxs-labs/testing |
||
NGXS-labs Actions Executing | @ngxs-labs/actions-executing |
||
NGXS-labs Attach Action | @ngxs-labs/attach-action |
Project | Package | Version | Links |
---|---|---|---|
Reset Plugin | ngxs-reset-plugin |
||
NGXS-Loading-plugin | ngxs-loading-plugin |
||
NGXS-History-plugin | ngxs-history-plugin |
Thanks to all our contributors!