Вам следует поменять архитектуру хранения, состояния, тем более что создаете SPA. Вам следует создать простой объект, в свойствах которого будет храниться состояние приложения, в частности, у него может быть свойство mode. Далее, для изменения этого свойства создать функцию-редьюсер. После этого, все вместе упаковать в хранилище/стор. Что же до персистент-хранения в локал-сторадже или где там еще, то хранилище должно предоставлять метод dispatch(), в который можно передать функцию, которая будет при изменениях будет скидывать состояние в нужный сторадж. Также, с помощью этого же метода добавлять функции обновления состояние DOM или что там нужно для отображения в UI.
В общем, я кратко описал концепцию работы REDUX, новичкам в этом вопросе кажется, что эта библиотека создана исключительно для реакта, но это не так.
И да, данные сначала меняются в "горячем" объекте внутри стора, а потом уже выталкиваются в UI и персистент-хранилища.