Skip to content

useAtom.ts

Назначение файла

Модуль предоставляет React-хук useAtom(), который подписывает компонент на одно реактивное значение Atom<T>.

Общая информация

useAtom() решает базовую задачу чтения Nrgy-атома из React. Хук берет текущее значение атома как начальное состояние компонента и затем синхронизирует React с изменениями через effect().

Концептуальная архитектура

Логика хука состоит из двух этапов:

  1. useState(source) использует текущее значение атома как начальное значение локального состояния.
  2. useEffect() создает подписку через effect(source, callback) и при размонтировании вызывает subscription.destroy.

Это обеспечивает корректный жизненный цикл подписки и исключает обновления после размонтирования компонента.

Описание публичного API

useAtom<T>(source: Atom<T>): T

  • source: атом или вычисляемый атом, значение которого нужно читать.
  • Возвращает текущее значение атома типа T.
  • Перерендеривает компонент при изменении значения source.

Примеры использования

tsx
import React from 'react';
import { atom } from '@nrgyjs/core';
import { useAtom } from '@nrgyjs/react';

const counter = atom(0);

export function CounterValue() {
  const value = useAtom(counter);

  return <span>{value}</span>;
}