I'm impressed with the redux-like pattern in Angular, and I'm hooked into NGXS (I compared this with NGRX and Akita, but opted for NGXS).
I'm aware that NGXS stores all the previous states within the application, so if I've a very complex UI, with tons of grid manipulations, etc which on each action adds a new state, won't the global state object becomes 'very large' and bulky with the entire hierarchy of the previous states ?
Is there a performance issue with this as the application gets complex and complex ?
NGXS does not store the previous states of the application. When you add the Dev Tools Plugin and open the Redux Dev Tool then each change to the state is sent to the Redux Dev Tool. It would be the Dev Tool that stores the previous application states.
As the application state tree gets bigger the only performance hit you would see would be when you have your Redux Dev Tools open. Other than that it is entirely dependent on how you design your state and selectors.