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;
相关推荐
前端Hardy1 分钟前
HTML&CSS:超好看的数据卡片
前端·javascript·html
牧码岛2 分钟前
Web前端之隐藏元素方式的区别、Vue循环标签的时候在同一标签上隐藏元素的解决办法、hidden、display、visibility
前端·css·vue·html·web·web前端
CUIYD_19895 分钟前
Vue 中组件命名与引用
javascript·vue.js·node.js
面朝大海,春不暖,花不开6 分钟前
Spring Boot MVC自动配置与Web应用开发详解
前端·spring boot·mvc
知否技术6 分钟前
2025微信小程序开发实战教程(一)
前端·微信小程序
孙 悟 空7 分钟前
ArcGIS Maps SDK for JavaScript:使用图层过滤器只显示FeatureLayer的部分要素
javascript·arcgis
玲小珑8 分钟前
Auto.js 入门指南(五)实战项目——自动脚本
android·前端
Sparkxuan8 分钟前
IntersectionObserver的用法
前端
玲小珑8 分钟前
Auto.js 入门指南(四)Auto.js 基础概念
android·前端
全栈技术负责人8 分钟前
Webpack性能优化:构建速度与体积优化策略
前端·webpack·node.js