Skip to content

state

状态管理工具。

导入

typescript
import { useOnceState } from '@cloudcome/utils-vue/state'

类型定义

UseOnceValueOptions<T>

typescript
interface UseOnceValueOptions<T> {
  equal?: (a: T, b: T) => boolean
}

属性说明

属性类型描述
equal(a: T, b: T) => boolean自定义相等比较函数

函数

useOnceState

创建只能改变一次的状态。

typescript
function useOnceState<T>(value: T, options?: UseOnceValueOptions<T>): [Ref<T>, (newValue: T) => void]

参数

参数类型描述
valueT初始值
optionsUseOnceValueOptions<T>可选配置

返回值

[Ref<T>, (newValue: T) => void] - 状态引用和更新函数

示例

typescript
// 基本用法
const [count, setCount] = useOnceState(0)

console.log(count.value) // 0
setCount(1)
console.log(count.value) // 1
setCount(2) // 无效,只能改变一次
console.log(count.value) // 1

// 自定义相等比较
const [user, setUser] = useOnceState(
  { name: 'Alice', age: 25 },
  {
    equal: (a, b) => a.name === b.name
  }
)

setUser({ name: 'Bob', age: 30 }) // 有效
setUser({ name: 'Bob', age: 31 }) // 无效,name 相同

基于 MIT 许可发布