arara-state
v1.2.0
Published
O Arara State Manager é um pacote JavaScript que oferece uma maneira simples de gerenciar o estado do aplicativo utilizando o Recoil, uma biblioteca de gerenciamento de estado para React.
Downloads
3
Readme
Arara State Manager
O Arara State Manager é um pacote JavaScript que oferece uma maneira simples de gerenciar o estado do aplicativo utilizando o Recoil, uma biblioteca de gerenciamento de estado para React.
Instalação
Você pode instalar o Arara State Manager usando o npm ou yarn:
npm install arara-state-manager
# ou
yarn add arara-state-manager
Uso Básico
Para começar a usar o Arara State Manager, importe a função Store a partir do pacote:
import { Store } from 'arara-state-manager'
Em seguida, chame a função Store para criar uma instância da loja de estado:
const { useAtomValue, updateAtomValue } = Store();
O método useAtomValue permite que você acesse o valor de um átomo em seu estado global. Forneça a key (chave) correspondente ao átomo que você deseja acessar e um valor defaultValue padrão caso o átomo ainda não tenha sido inicializado.
Exemplo:
const setValue = updateAtomValue('counter');
setValue(42); // Define o valor do átomo 'counter' como 42
localStorageEffect(key)
O Arara State Manager também oferece suporte a efeitos para persistir o estado no armazenamento local (localStorage). Para usar o efeito de armazenamento local, você deve criar um átomo com este efeito:
const atomWithLocalStorage = atom({
key: 'myAtom',
default: null,
effects_UNSTABLE: [localStorageEffect('myAtom')],
});
Este efeito salvará e carregará automaticamente o valor do átomo no armazenamento local.
Exemplos
Aqui estão alguns exemplos de uso do Arara State Manager:
Exemplo 1: Contador
const counterValue = useAtomValue('counter', 0);
const incrementCounter = () => {
const updatedValue = counterValue + 1;
updateAtomValue('counter')(updatedValue);
};
Exemplo 2: Lista de Tarefas
const tasks = useAtomValue('tasks', []);
const addTask = (newTask) => {
const updatedTasks = [...tasks, newTask];
updateAtomValue('tasks')(updatedTasks);
};