Basic Concept
Easy unidirectional store and redo/undo library for state management for frontend apps on Blazor/.NET
We provides a Store that allows you to share state between components. All stores are managed by a single provider and can subscribe to state change notifications. Undirectional flow and immutable change of state provides a predictable architecture. In addition, we provide a store that easily implements Redo/Undo by managing in immutable states.
DEMO Page
https://le-nn.github.io/memento/
If you have ReduxDevTool installed, DevTool will launch automatically. You can do state history and time travel.
See ReduxDevTools Docs for details of usage.
Features
- Less boilerplate, less rule and simple usage
- Immutable state and Unidirectional flow
- Multiple stores but manged by single provider, so can observe and manage as one state tree
- Observe detailed status with command patterns and makes it easier to monitor what happened within the application
Compatibility and bindings
Package Name | Platform | Desctiption |
---|---|---|
Memento.Core | .NET 8 or later | Core Package of Memento |
Memento.Blazor | .NET 8 or later | Provides Observing state changes on Blazor Component. |
Memento.ReduxDevTool.Remote | .NET 8 or later | Connect and Interact with applications via WebSocket. |
Memento.ReduxDevTool.Browser | .NET 8 or later | Interact with ReduxDevTools via JavaScript interop. |
Memento.ReduxDevTool | .NET 8 or later | Provides basic functionality to interact with ReduxDevTools. Interop is required. |
Tutorials
Link | Summary |
---|---|
BasicConcept with C# | The tutorials for implemented with pure C# in simple console application. |
Update UI with Blazor | Practical Uses of the Framework. In practice, it is mostly used with UI frameworks. Here is a tutorial on how to use it with Blazor. |
Middleware | Middleware can be implemented to interrupt the process when updating the state. Middleware can be extended for various purposes, such as implementing your own Logger or supporting ReduxDevTools. |
Redux Dev Tools | ReduxDevTools is a tool for debugging application's state changes. State can be time traveled and history can be viewed in ReduxDevTools. |
Redo / Undo | Redo/Undo is a feature that allows you to undo and redo state changes. |