React 第三方状态管理库相关 -- Recoil & Zustand 篇

一、Recoil

首先安装依赖:

复制代码
npm install recoil

示例代码:

javascript 复制代码
// src/store/index.js
import { countState } from './counterState';

export {
    countState
};
javascript 复制代码
// src/store/counterState.js
import { atom } from 'recoil';

export const countState = atom({
    key: 'countState',
    default: 0,
});
javascript 复制代码
// src/main.jsx
import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
import './index.css'
import App from './App.jsx'
import { RecoilRoot } from 'recoil';

createRoot(document.getElementById('root')).render(
  <StrictMode>
    <RecoilRoot>
      <App />
    </RecoilRoot>
  </StrictMode>,
)
javascript 复制代码
// src/App.jsx
import React from 'react';
import { useRecoilState } from 'recoil';
import { countState } from './store';

const App = () => {
  const [count, setCount] = useRecoilState(countState);

  return (
    <div>
      <h1>Counter</h1>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
  );
};

export default App;

二、Zustand

首先安装依赖:

javascript 复制代码
npm install zustand

示例代码:

javascript 复制代码
// src/store/index.js
import useCounterStore from "./counterStore";

export { useCounterStore };
javascript 复制代码
// src/store/counterStore.js
import { create } from 'zustand';

const useCounterStore = create((set) => ({
    count: 0,
    increment: () => set((state) => ({ count: state.count + 1 }))
}));

export default useCounterStore;
javascript 复制代码
// src/App.jsx
import React from 'react';
import { useCounterStore } from './store';

const App = () => {
  const counterStore = useCounterStore();
  console.log(counterStore);

  return (
    <div>
      <p>Count: {counterStore.count}</p>
      <button onClick={() => counterStore.increment()}>Increment</button>
    </div>
  );
};

export default App;
相关推荐
前端snow12 小时前
ai agent---mcp知识汇总
前端
计算机魔术师12 小时前
AI 写了一半代码,谁来背锅?Anthropic 的安全重构笔记
前端
半个落月12 小时前
JavaScript 单例模式详解:从唯一实例到按钮事件
javascript
明月_清风12 小时前
vLLM 深度实战:2026 年生产级 LLM 推理引擎完全指南
前端·后端·ai编程
风月说与山鬼12 小时前
七、uni-app页面与组件生命周期
前端·uni-app
绿岛之北12 小时前
Electron 安全第三章:URL 加载与 WebView
前端·electron
sunoo-22912 小时前
C 语言文件 IO 全攻略:从基础函数到实战踩坑(BMP 读取 + 词典查询)
linux·c语言·前端·笔记·vscode·学习
Shinner欣儿12 小时前
React18 并发渲染小记
前端
用户9210802628613 小时前
AI 对话里的消息时间线分页:上滑加载更多历史记忆的实现与坑点
前端
PedroQue9913 小时前
Vue-Router 2.4.0 新增可控重定向功能
前端·uni-app