mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
* add a brief overview to our use of mobx and mark all observable fields as observable in our docs * add to navigation Signed-off-by: Sebastian Malton <sebastian@malton.name>
1.5 KiB
1.5 KiB
Working with mobx
Introduction
Lens uses mobx as its state manager on top of React's state management system.
This helps with having a more declarative style of managing state, as opposed to React's native setState mechanism.
You should already have a basic understanding of how React handles state (read here for more information).
However, if you do not, here is a quick overview.
- A
React.Componentis generic over bothPropsandState(with default empty object types). Propsshould be considered read-only from the point of view of the component and is the mechanism for passing in "arguments" to a component.Stateis a component's internal state and can be read by accessing the parent fieldstate.Statemust be updated using thesetStateparent method which merges the new data with the old state.Reactdoes do some optimizations around re-rendering components after quick successions ofsetStatecalls.
How mobx works:
mobx is a package that provides an abstraction over React's state management. The three main concepts are:
observable: data stored in the component'sstateaction: a function that modifies anyobservabledatacomputed: data that is derived fromobservabledata but is not actually stored. Think of this as computingisEmptyvs anobservablefield calledcount.
Further reading is available from mobx's website.