Store 状态管理
提供简单的状态管理功能,支持持久化存储和跨页面数据共享。
平台 |
支持情况 |
使用方式 |
vue 页面 |
支持 |
可使用 this.$zk() 或 uni.$zk.getState() |
nvue 页面 |
支持 |
只能使用 uni.$zk.getState() |
基础用法
// Vue 页面中使用
export default {
methods: {
example() {
// 获取当前是暗色还是亮色状态
const theme = this.$zk('theme.mode')
// 得到值 light 或 dark
// 设置为暗色状态
this.$zkSet('theme.mode', 'dark', true) // 第三个参数为是否持久化
// 批量设置
this.$zkBatchSet({
'theme.mode': 'dark',
'language': 'zh-CN'
})
// 清除状态
this.$zkClear(['theme.mode']) // 清除指定key
}
}
}
// Nvue 页面中使用
export default {
methods: {
example() {
// 获取状态
const theme = uni.$zk.getState('theme.mode', 'light')
// 设置状态
uni.$zk.setState('theme.mode', 'dark', true)
// 批量设置
uni.$zk.batchSetState({
'theme.mode': 'dark',
'language': 'zh-CN'
})
// 清除状态
uni.$zk.clear(['theme.mode'])
}
}
}
API
Methods 方法
方法名 |
说明 |
参数 |
返回值 |
$zk / getState |
获取状态值 |
key: string, defaultValue?: any |
any |
$zkSet / setState |
设置状态值 |
key: string, value: any, persist?: boolean |
void |
$zkBatchSet / batchSetState |
批量设置状态值 |
updates: Object |
void |
$zkClear / clear |
清除状态值 |
keys?: string[] |
void |
注意事项
- 在 nvue 页面中,只能使用 uni.$zk 的方法(getState, setState 等)
- 在 vue 页面中,推荐使用 this.$zk 的方法,但也支持 uni.$zk 的调用方式
- persist 参数设置为 true 时,数据会被持久化存储
- 批量设置时,会自动合并之前的状态
- 清除必须传入 keys 数组则只清除指定的状态