Optimizations
By default, the APIs in state_watcher will favor efficiency and simplicity of usage, over pure performance. This means that sometimes, to have the best performance, manual configuration will be necessary.
Here you will find how to configure state_watcher in you app, to fine-tuning its performance.
Lifting state up
By default, the state of Computed
refs are stored in the nearest StateStore
in the widget tree. This is useful to be sure to watch the right values in the Computed
’s callback.
Sometimes you know that the state of a Computed
can be globally available and you do not want it to be saved in the nearest store in the widget tree, but in the root one. It can be particularly true when using Computed.withParameter
.
To do that you’ll have to set the global
parameter to true
:
Disposing Provided states automatically
By default the state of a Provided
is not removed from the store when nothing watches it. You can opt-in for this feature by setting autoDispose
to true when creating the Provided
.
Stopping watching refs
In some conditions, we know that after a certain state, we don’t need to watch it anymore. For example if you have a widget which shows an expiration duration, once it’s expired, we do not need to watch the current date anymore.
To unwatch a ref you can call the watch.cancel
method with that ref:
By doing this, if refCurrentDate
is automatically disposed, when every widget is expired, the state of refCurrentDate
will be disposed.