taro之zustand本地数据持久化

本文最后更新于 2025年1月16日 下午

使用案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import { getStorageSync, removeStorageSync, setStorageSync } from '@tarojs/taro'
import { persist } from 'zustand/middleware'
import { create } from 'zustand'

// 定义 storage 类
const asyncLocalStorage = {
getItem: getStorageSync,
setItem: setStorageSync,
removeItem: removeStorageSync
}

// 创建实例
const cretaeCardIdSlice = (set, _get) => ({
cardId: '',
setCard: (input) => set({ cardId: input })
})

// 使用 `devtools` 和 `persist` 中间件来创建 store
export const useCardIdState = create(
persist(
(set: any, get: any) => ({
...cretaeCardIdSlice(set, get)
}),
{
name: 'CARD_ID', // 存储到 localStorage 中的键
partialize: (state) => ({ cardId: state.cardId }),
getStorage: () => asyncLocalStorage
}
)
)

赋值

1
2
3
4
5
const setCardId = (e) => {
// Taro.setStorageSync('CARD_ID', e.id)
setCard(e.id)
}

读取值

1
2
3
const cardIdState = useCardIdState()

console.log('cardIdState=====>>>', cardIdState, cardIdState.cardId)

taro之zustand本地数据持久化
https://dev.dgdream.online/taro之zustand本地数据持久化/
作者
执念
发布于
2025年1月16日
更新于
2025年1月16日
许可协议