IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    useAtom 是 Jotai 库中的一个核心 Hook

    亢奋猫发表于 2024-07-22 17:01:52
    love 0

    useAtom 是 Jotai 库中的一个核心 Hook,用于在 React 组件中管理和使用状态。Jotai 是一个轻量级的状态管理库,灵感来源于 Recoil,但更加简洁和直观。

    基本用法

    useAtom 用于创建和管理原子状态(atoms)。原子状态是 Jotai 中的基本状态单元,可以被多个组件共享和更新。

    import { atom, useAtom } from 'jotai';
    
    // 创建一个原子状态
    const countAtom = atom(0);
    
    function Counter() {
      // 使用 useAtom 读取和更新原子状态
      const [count, setCount] = useAtom(countAtom);
    
      return (
        <div>
          <p>Count: {count}</p>
          <button onClick={() => setCount(count + 1)}>Increment</button>
        </div>
      );
    }

    特点

    1. 简洁:Jotai 的 API 非常简洁,易于学习和使用。
    2. 轻量:Jotai 的体积很小,对项目的影响较小。
    3. 灵活:原子状态可以组合和派生,支持复杂的状态逻辑。
    4. React 集成:与 React 的 Hooks API 完美集成,使用起来非常自然。

    高级用法

    除了基本的状态管理,Jotai 还支持派生状态、异步状态和原子组合等高级功能。

    import { atom, useAtom } from 'jotai';
    
    // 创建一个基础原子状态
    const baseAtom = atom(0);
    
    // 创建一个派生原子状态
    const derivedAtom = atom(
      (get) => get(baseAtom) * 2,
      (get, set, newValue) => {
        set(baseAtom, newValue / 2);
      }
    );
    
    function DerivedCounter() {
      const [derivedValue, setDerivedValue] = useAtom(derivedAtom);
    
      return (
        <div>
          <p>Derived Value: {derivedValue}</p>
          <button onClick={() => setDerivedValue(derivedValue + 2)}>Increment</button>
        </div>
      );
    }

    通过 useAtom,Jotai 提供了一种简单而强大的方式来管理 React 应用中的状态。



沪ICP备19023445号-2号
友情链接