useAtom.ts
Назначение файла
Модуль предоставляет React-хук useAtom(), который подписывает компонент на одно реактивное значение Atom<T>.
Общая информация
useAtom() решает базовую задачу чтения Nrgy-атома из React. Хук берет текущее значение атома как начальное состояние компонента и затем синхронизирует React с изменениями через effect().
Концептуальная архитектура
Логика хука состоит из двух этапов:
useState(source)использует текущее значение атома как начальное значение локального состояния.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>;
}