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...