Table of Contents

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.

Samples

C# with Console App

Blazor App Shared

Blazor Wasm App

Blazor Server App