# Onde guardar uma variável? - **State** (estado) representa o conjunto atual de dados que influenciam a renderização ou comportamento de um componente/página. - Em JavaScript puro, o *state* costuma ser mantido em variáveis locais, objetos literais ou closures. **Variáveis Globais**: ```javascript // Estado global (evitar sempre que possível) let counter = 0; // Função que altera o estado function increment() { counter++; } ``` --- <style scoped> p{font-size:28px; line-height: 1.2em;} pre{font-size:22px; line-height: 1.2em;} </style> # Encapsulamento com Closure O state fica protegido dentro da função, acessível apenas pelos métodos retornados. ```javascript const createCounter = () => { let count = 0; // Estado privado return { increment: () => { count++; console.log(count); }, getValue: () => count }; }; const counter = createCounter(); counter.increment(); counter.getValue(); ``` > Frameworks como React ou Vue gerenciam state declarativamente. ---