zustand 切片模式使用,persist 中间件持久化状态

ops/2025/1/17 13:12:20/

zustand - npm

安装 npm i zustand

创建切片目录:

创建切片 channelStore.js

import { getChannelsAPI } from "@/apis/article";
const channelStore = (set) => {return {channelList: [],fetchChannelList: async () => {const res = await getChannelsAPI()set({channelList: res.data.data.channels})}}
}
export default channelStore

创建切片numStore.js

const numStore = (set) => {return {num: 0,incre: ()=>{set(state => ({num: state.num+1}))}}
}
export default numStore
创建主Store 如  useStoree 并组合切片
import { create } from "zustand";
import channelStore from "./module/channelStore";
import numStore from "./module/numStore";const useStoree = create((...args) =>{return {...channelStore(...args),...numStore(...args)}
})
export default useStoree

或者

import { create } from 'zustand';
import channelStore  from './module/channelStore';
import numStore  from './module/numStore';const useStoree = create(set => ({...channelStore(set),...numStore(set)
}))export default useStoree

在组件中使用useStoree 

import useStoree from "@/zustandStore";
import { useEffect } from "react";const ZustanInd = ()=>{// const num = useStoree((state) => state.num)// const fetchChannelList = useStoree((state) => state.fetchChannelList)// const channelList = useStoree((state) =>state.channelList)// const incre = useStoree((state) => state.incre)const {num,incre,fetchChannelList,channelList} = useStoree()useEffect(()=>{fetchChannelList()},[])console.log(channelList)return<><button onClick={incre}>{num}</button><ul>{channelList.map(item=><li key={item.id}>{item.name}</li>)}</ul></>
}
export default ZustanInd

使用 persist 中间件 持久化状态

npm install zustand/persist

import { create } from 'zustand';
import channelStore  from './module/channelStore';
import numStore  from './module/numStore';
import { persist } from 'zustand/middleware';
const useStoree = create(persist(set => ({...channelStore(set),...numStore(set)}),{name: 'my-store', // 存储的名字getStorage: () => localStorage, // 存储的方式})
)export default useStoree

持久化部分:

import { create } from 'zustand';
import channelStore  from './module/channelStore';
import numStore  from './module/numStore';
import { persist } from 'zustand/middleware';
const useStoree = create(persist((set) => ({...channelStore(set),...numStore(set)}),{name: 'my-store', // 存储的名字getStorage: () => localStorage, // 存储的方式 ,默认是 localStorage,也可设置 sessionStoragepartialize: (state) => ({ num: state.num }), // 持久化部分状态})
)export default useStoree


http://www.ppmy.cn/ops/150810.html

相关文章

传统数据湖和数据仓库的“中心化瓶颈”

传统数据湖和数据仓库的**“中心化瓶颈”**&#xff0c;主要是由于其架构设计和治理模式的局限性&#xff0c;无法有效应对现代企业中数据规模的快速增长和组织复杂性。以下是具体表现&#xff1a; 1. 单点瓶颈&#xff08;Single Point Bottleneck&#xff09; 传统数据湖/仓…

阀井可燃气体监测仪,开启地下管网安全新篇章-旭华智能

在城市的脉络中&#xff0c;地下管网犹如隐秘的动脉&#xff0c;支撑着现代生活的运转。而在这庞大网络的关键节点上&#xff0c;阀井扮演着不可或缺的角色。然而&#xff0c;由于其密闭性和复杂性&#xff0c;阀井内部一旦发生可燃气体泄漏&#xff0c;将对公共安全构成严重威…

2025年01月16日Github流行趋势

项目名称&#xff1a;tabby 项目地址url&#xff1a;https://github.com/TabbyML/tabby 项目语言&#xff1a;Rust 历史star数&#xff1a;27449 今日star数&#xff1a;1439 项目维护者&#xff1a;wsxiaoys, apps/autofix-ci, icycodes, liangfung, boxbeam 项目简介&#xf…

Spring Cache

Spring Cache缓存框架 ‌Spring Cache‌是Spring框架提供的一种缓存抽象机制&#xff0c;用于简化应用中的缓存操作。它通过将方法的返回值缓存起来&#xff0c;当下次调用同一方法时&#xff0c;如果传入的参数与之前的调用相同&#xff0c;就可以直接从缓存中获取结果&#x…

C++中的琐碎知识点

指针、常量和类型别名 1.使用 typedef char *pstring; const pstring cats 0; 时&#xff1a; 首先&#xff0c;typedef char *pstring; 定义了 pstring 是 char * 的别名&#xff0c;即 pstring 表示一个指向 char 的指针类型。然后&#xff0c;const pstring cats 0; 意味…

c#-Halcon入门教程——标定

Halcon代码 read_image (NinePointCalibration, D:/Desktop/halcon/ca74d-main/九点标定/NinePointCalibration.gif)rgb1_to_gray (NinePointCalibration, GrayImage)get_image_size (GrayImage, Width, Height) dev_display (GrayImage)* 获取当前显示的窗口句柄 dev_get_win…

Azure 100 学生订阅下,使用 Docker 在 Ubuntu VPS 上部署 Misskey 的详细教程

什么是 Docker 和 Misskey&#xff1f; Docker 是一个开源的应用容器引擎&#xff0c;它可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;包括物理机、虚拟机、云服务等。使用 Docker&#xff0c…

Lora综述:全面系统的理解lora微调

基础模型的快速发展已经彻底改变了人工智能领域&#xff0c;其在自然语言处理&#xff0c;计算机视觉和科学发现等领域取得了前所未有的进步。然而&#xff0c;这些模型的大量参数&#xff08;通常达到数十亿或数万亿&#xff09;使其在适应特定下游任务方面构成了重大挑战。 …