Lendo e gravando no localStorage com React
Acesse localStorage com segurança nos hooks do React, trate ambientes SSR e serialize estados complexos.
Lendo e gravando no localStorage com React é uma aula grátis de React Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de React Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de React Academy inclui 4 aulas no total.
A interface localStorage
localStorage é um armazenamento integrado do navegador com quatro métodos principais: setItem(key, value), getItem(key), removeItem(key) e clear(). Os dados persistem após recarregamentos da página e reinicializações do navegador.
Ele pertence ao objeto da janela e tem escopo por origem, o que significa que cada domínio possui seu próprio armazenamento isolado.
É síncrono e bloqueante
Cada chamada a localStorage é executada de forma síncrona na linha principal de execução. Ler ou gravar grandes quantidades de dados pode bloquear a renderização e fazer a interface parecer travada.
Por isso, mantenha os valores armazenados pequenos e evite gravar a cada tecla digitada ou evento de rolagem.
Armazena apenas cadeias de caracteres
localStorage só pode armazenar cadeias de caracteres. Para armazenar um objeto ou uma matriz, primeiro você precisa serializá-los com JSON.stringify(value) antes de chamar setItem.
Se você armazenar diretamente um valor que não seja uma cadeia de caracteres, ele será convertido; assim, um objeto se torna a cadeia inútil [object Object].
Interpretando com tratamento de erros
Ao ler, você chama JSON.parse(localStorage.getItem(key)), mas a interpretação pode gerar um erro se a cadeia armazenada estiver corrompida ou tiver sido gravada por outra origem.
Envolva a interpretação em um try/catch e use um valor padrão como alternativa para que uma entrada inválida não faça seu componente falhar.
Verificando a disponibilidade
localStorage nem sempre pode ser usado: durante a renderização no servidor, window não existe, e alguns modos de navegação privada geram um erro ao gravar. Proteja o acesso com uma verificação de suporte.
Um teste seguro é um try/catch que define e remove uma chave fictícia, retornando falso se ocorrer um erro.
O limite de capacidade de aproximadamente 5 MB
A maioria dos navegadores limita o localStorage a aproximadamente cinco megabytes por origem. Exceder esse limite lança um QuotaExceededError ao gravar.
Isso torna o localStorage adequado para dados pequenos, mas uma opção ruim para imagens, grandes conjuntos de dados ou respostas de API armazenadas em cache.
Dados adequados
Boas opções são partes pequenas e não confidenciais da interface e do estado do usuário: preferência de tema, estado recolhido da barra lateral, filtros usados por último, banners dispensados e rascunhos de formulários não salvos.
Esses são valores que você deseja preservar após um recarregamento, mas que não precisam de uma ida e volta ao servidor.
Dados inadequados
Evite armazenar segredos, como tokens ou senhas, porque qualquer script na página pode ler o localStorage, tornando-o vulnerável a XSS. Evite também objetos grandes e o estado oficial do servidor.
Os dados confidenciais de autenticação devem ficar em cookies httpOnly, e os dados canônicos devem ficar no servidor.
localStorage versus sessionStorage
Ambos compartilham a mesma interface, mas o sessionStorage é limpo quando a aba é fechada e não é compartilhado entre abas. O localStorage persiste indefinidamente e é compartilhado entre todas as abas da mesma origem.
Escolha sessionStorage para dados de curta duração específicos da aba e localStorage para preferências duradouras.
Cookies versus IndexedDB
Os cookies são pequenos e enviados com cada requisição HTTP, o que é adequado para autenticação, mas desperdiça largura de banda com dados gerais. O IndexedDB é um banco de dados assíncrono para dados grandes e estruturados, muito além do limite de 5 MB.
Escolha cookies para autenticação lida pelo servidor, localStorage para pequenas preferências no cliente e IndexedDB para dados grandes ou complexos.
Um padrão simples de leitura e gravação
Um auxiliar mínimo grava com localStorage.setItem(key, JSON.stringify(value)) e lê com um try/catch protegido em torno de JSON.parse(localStorage.getItem(key)), retornando um valor padrão em caso de falha.
Esse pequeno invólucro mantém a serialização e o tratamento de erros em um só lugar.
Verificação rápida
Teste sua compreensão dos tipos de dados do localStorage.
Recapitulação
Você aprendeu a interface do localStorage, que ele é síncrono, aceita apenas strings e é limitado a cerca de 5 MB, além de ter aprendido a analisar dados com segurança e verificar a disponibilidade para SSR e o modo privado.
Você também o comparou com sessionStorage, cookies e IndexedDB para escolher o armazenamento adequado.
Perguntas Frequentes
A aula “Lendo e gravando no localStorage com React” é grátis?
Sim — o texto completo de “Lendo e gravando no localStorage com React” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de React Academy, atualize para CoddyKit PRO. O curso de React Academy inclui 4 aulas no total.
O que vou aprender em “Lendo e gravando no localStorage com React”?
Acesse localStorage com segurança nos hooks do React, trate ambientes SSR e serialize estados complexos. Você pratica React Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar React Academy?
Nenhuma experiência prévia é necessária. React Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Lendo e gravando no localStorage com React”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de React Academy?
Sim. Cada aula de React Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Lendo e gravando no localStorage com React
- Sincronizando o estado com localStorage
- Tratando eventos de armazenamento entre abas
- sessionStorage, IndexedDB e escolha da API certa