当前位置: 首页 > article >正文

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

 一、Recoil

首先安装依赖:

npm install recoil

示例代码:

// src/store/index.js
import { countState } from './counterState';

export {
    countState
};
// src/store/counterState.js
import { atom } from 'recoil';

export const countState = atom({
    key: 'countState',
    default: 0,
});
// 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>,
)
// 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

首先安装依赖:

npm install zustand

示例代码:

// src/store/index.js
import useCounterStore from "./counterStore";

export { useCounterStore };
// src/store/counterStore.js
import { create } from 'zustand';

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

export default useCounterStore;
// 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;


http://www.kler.cn/a/511062.html

相关文章:

  • C++的auto_ptr智能指针:从诞生到被弃用的历程
  • 【专题二 二叉树中的深搜】98. 验证二叉搜索树
  • “libcudart,so.1 1.0“ loss解决方案
  • 天机学堂5-XxlJobRedis
  • 力扣动态规划-2【算法学习day.96】
  • 【数据分析】02- A/B 测试:玩转假设检验、t 检验与卡方检验
  • 基于 WEB 开发的汽车养护系统设计与实现
  • docker运行镜像命令
  • 论文笔记(六十二)Diffusion Reward Learning Rewards via Conditional Video Diffusion
  • Spring Boot中yml和properties的区别
  • 进阶——第十六届蓝桥杯熟练度练习(串口)
  • rook-ceph云原生存储解决方案
  • 洗衣店订单|基于springboot+vue的洗衣店订单管理系统(源码+数据库+文档)
  • 【博客之星评选】2024年度前端学习总结
  • HTML练习-校园官网首页面
  • 医院管理系统小程序设计与实现(LW+源码+讲解)
  • 一文大白话讲清楚Node中间件
  • WPS数据分析000004
  • redis-排查命中率降低问题
  • 判断nginx的请求是否存在堆积
  • 深度学习基础--LSTM学习笔记(李沐《动手学习深度学习》)
  • JWT在线解密/JWT在线解码 - 加菲工具
  • 3.2 OpenAI 语言模型总览:GPT 系列的演进与应用解析
  • 精准测量,尽在掌握 —— 电导率传感器:科技之水质的守护者
  • ubuntu支持中文的字体
  • 【PowerQuery专栏】PowerQuery提取XML数据