State
The state is, most of the time, the central part of your model. People often start by defining the state that represents their app.
import { defineModel } from 'doura'
export const countModel = defineModel({
// arrow function recommended for full type inference
state: {
// all these properties will have their type inferred automatically
count: 0,
name: 'test',
max: 100,
},
})
Accessing the state
By default, you can directly read and write to the state by accessing it through the model instance:
const counter = store.getModel('counter', countModel)
counter.count++
Note you cannot add a new state property if you don't define it in state, it must contain the initial state. e.g.: we can't do counter.secondCount = 2 if secondCount is not defined in state.
Replacing the state
You cann replace the state of a model by assgining the new state to $state:
const model = store.getModel('counter', countModel)
model.$state = { count: 24 }
Subscribing to the state
Documentation coming soon...