0Pricing
React Academy · Aula

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

  1. Lendo e gravando no localStorage com React
  2. Sincronizando o estado com localStorage
  3. Tratando eventos de armazenamento entre abas
  4. sessionStorage, IndexedDB e escolha da API certa
← Voltar para React Academy