the key in local storage at which to persist the state
used when the state has not been persisted yet
Optionalcodec?: PersistenceCodec<State, Persisted>use to persist a different format than what is kept in the store
Optionalmigrator?: MigrationManager<Persisted>used to update the state when it was at a lower VersionedObject._version when it was last persisted
Readonly$An Observable of the state of this store object.
ProtectedactiveProtected OptionallastProtectedsubscribersProtectedactivateAssigns the given values to state of this store object. The resulting state will be like Object.assign(store.state(), value).
Turns off this store's observables while func is executing, emitting only once afterward, if the store changed. This allows you to batch multiple mutations into a single update at the end.
store.batch(() => {
store.assign({ key1: value1 });
store('key2').delete();
store('key3').set({ key4: value4 });
store('key1').state(); // returns `value1`
});
ProtecteddeactivateRemoves the state represented by this store object from its parent. E.g. to remove the current user:
store('currentUser').delete();
ProtectedisProtectedmaybeProtectedmaybeProtectedmaybeRuns func on a shallow clone of the state, replacing the state with the clone. The first argument to func will be the cloned state, followed by the arguments in args.
WARNING: You SHOULD NOT use a function that will mutate nested objects within the state.
Replace the state represented by this store object with the given value.
Runs func on the state and replaces it with the return value. The first argument to func will be the state, followed by the arguments in args.
WARNING: You SHOULD NOT use a function that will mutate the state.
Retrieve the current state represented by this store object.
Protectedupdate
A store that is automatically saved to and restored from local storage. This is suitable for small stores that can very quickly be (de)serialized to/from JSON without any noticeable delay.
At this point, if you change
_versionthe store will be reset to the default state. This is a convenience during initial development of your app. Once it is released to real users, you will want to use a MigrationManager to avoid wiping out your users' data:If you want to persist something a little different from what is in the store, for example to omit some properties, use a PersistenceCodec: