Basics
If you are familiar with lodash's deep set / get functions or the formik library, most of the functionality will be clear to you.
Overview
stocked keeps all data in context. After that, you can watch the value changes using the useStockValue (if you don't want to edit the value), useStockState hooks or using watch function.
Data
Data is saved as one, non-circular object.
caution
Be careful! stocked does not support circular objects.
Standard API
To change value, you need to call deep set or get functions. For example:
stock.setValue('path.to.value', 'testValue');
To get deep value, you can use function getValue:
stock.getValue('path.to.value');
To observe value changes, use watch function:
const cleanup = stock.watch('path.to.value', newValue => {
// your code...
});
// call cleanup when your component unmounts
cleanup();
Hooks API
If you're fan of React hooks, you can use some helper hooks from stocked for easier state manipulation. For example:
const value = useStockValue('path.to.value');
This hook will return actual value for you. No observers and cleanups - everything works out of the box!
If you like React useState hook, stocked also has something for you:
const [value, setValue] = useStockState('path.to.value');
Playgrounds
You can play with stocked in your web browser with these live online playgrounds:
Deep get / set playground
Try to specify path to the deep variable in the input below to see the instant result!
- hello: {
- asdf: "hello",
- co: "asdf",
- c: {
- hello: 0,
- arr: [
- "asdf",
- {
- h: {
- d: "asdf",
- h: {