Redux is a pattern that allows you to manage your event and application states in a safe way. It allows you to make sure that your application-wide states, resulting from navigation events or not, are managed in a single, non-accessible place.
Usually, the states of your application are stored in a TypeScript interface. Following the example we used in the previous section, we will implement login/logout functionalities for a user using a custom APIService that consumes JSON. In our case, the application has only one state: logged. Consequently, the interface would look like this:
export interface IAppState { logged: boolean; }
This interface only contains a single logged boolean. It might seem like overkill to have an interface for such a common variable, but you'll find it handy when your applications start to grow. The state of our application can only be...