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;
相关推荐
110546540132 分钟前
11、参数化三维产品设计组件 - /设计与仿真组件/parametric-3d-product-design
前端·3d
爱笑的林羽37 分钟前
Mac M系列 安装 jadx-gui
前端·macos
运维@小兵43 分钟前
vue使用路由技术实现登录成功后跳转到首页
前端·javascript·vue.js
肠胃炎1 小时前
React构建组件
前端·javascript·react.js
邝邝邝邝丹1 小时前
React学习———React.memo、useMemo和useCallback
javascript·学习·react.js
酷爱码1 小时前
HTML5表格语法格式详解
前端·html·html5
hello_ejb31 小时前
聊聊JetCache的缓存构建
java·前端·缓存
堕落年代1 小时前
SpringSecurity当中的CSRF防范详解
前端·springboot·csrf
美酒没故事°1 小时前
纯css实现蜂窝效果
前端·javascript·css
GISer_Jing2 小时前
React useState 的同步/异步行为及设计原理解析
前端·javascript·react.js