zustand状态管理工具(react)

分别创建文件continue.js、shoes.js

1、continue.js

javascript 复制代码
import create from 'zustand'
import { persist } from 'zustand/middleware'


export default create(
  persist(
    (set) => ({
      counter: 12,
      incrementer: () => set((state) => ({ counter: state.counter + 1 })),
      decrementer: () => set((state) => ({ counter: state.counter - 1 }))
    }),
    {
      name: 'myStore' // 持久化状态的标识符,用于存储在 localStorage 或其他存储中
    }
  )
)

2、shoes.js

javascript 复制代码
import create from 'zustand'

const useStore1 = create((set) => ({
  count: 12,
  increment: () => set((state) => ({ count: state.count + 1 })),
  decrement: () => set((state) => ({ count: state.count - 1 }))
}))

export default useStore1

项目中使用

javascript 复制代码
import React from 'react'
import useStore1 from '@/zustandStore/shoes.js'
import useStore2 from '@/zustandStore/continue.js'
import styles from './index.module.scss'


export default function index() {
  const { count, increment, decrement } = useStore1()
  const { counter, incrementer, decrementer } = useStore2()


  return (
    <div className={styles.tableBox}>
      <div>
        普通的值:{count}
        <button onClick={() => increment()}>新增</button>
      </div>
      <div>
        长保存的值(localStorage):{counter}
        <button onClick={() => incrementer()}>新增</button>
      </div>
    </div>
  )
}
相关推荐
牛奶3 分钟前
开发者的"奇技淫巧":那些让你效率翻倍的实战技巧
前端·后端·程序员
咸鱼翻身更入味3 分钟前
Vue创建一个简单的Agent聊天——工具调用
前端
Timo来了4 分钟前
indexDB的用法示例
前端
walking9577 分钟前
重新学习前端之设计模式与架构
前端·javascript·面试
walking95710 分钟前
重新学习前端之TypeScript
前端·javascript·面试
walking95710 分钟前
重新学习前端之Linux
前端·vue.js·面试
walking95711 分钟前
重新学习前端之CSS
前端·vue.js·面试
walking95711 分钟前
重新学习前端之Git
前端·vue.js·面试
walking95711 分钟前
重新学习前端之小程序
前端
魔术师Grace13 分钟前
AI让我退化成原始人了
前端·程序员