Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Salvando Dados no Armazenamento Local no Angular | Services and Dependency Injection in Angular
Introdução ao Angular

bookSalvando Dados no Armazenamento Local no Angular

Neste estágio, nosso aplicativo gerencia tarefas apenas na memória. Isso significa que toda vez que a página é atualizada, toda a lista de tarefas é perdida.

Para corrigir isso e garantir que as tarefas sejam salvas entre as sessões do usuário, usaremos o Local Storage — um recurso nativo do navegador que permite armazenar pares chave-valor diretamente no navegador do usuário.

O que é Local Storage?

Note
Definição

Local Storage é um tipo de armazenamento web fornecido pelos navegadores modernos que permite armazenar dados localmente no dispositivo do usuário na forma de pares chave-valor.

Os dados armazenados no Local Storage não desaparecem quando a página ou o navegador são fechados — permanecem disponíveis mesmo após uma reinicialização completa do navegador.

O LocalStorage armazena apenas dados como strings, portanto, ao trabalhar com objetos ou arrays, é necessário convertê-los usando JSON.stringify() antes de salvar e JSON.parse() ao recuperar.

A seguir estão os principais métodos utilizados para interagir com o Local Storage:

Adicionando Armazenamento Local

Para garantir que nossas tarefas sejam salvas mesmo após recarregar a página, é necessário implementar persistência usando o Local Storage do navegador. Isso significa que você deve ensinar nosso TaskService a salvar tarefas no armazenamento local e a carregá-las novamente quando o aplicativo iniciar.

Salvando Tarefas no Local Storage

Primeiro, é necessário um método que pegue nosso array interno de tarefas e o armazene no Local Storage do navegador.

Veja como fazer isso:

private saveTasks(): void {
  localStorage.setItem('tasks', JSON.stringify(this.tasks));
}

Este método converte o array tasks em uma string JSON usando JSON.stringify. Em seguida, armazena essa string no localStorage sob a chave tasks.

Sempre que uma tarefa for adicionada, excluída ou atualizada, este método será chamado para garantir que nossos dados estejam salvos.

Carregando Tarefas do Local Storage

Em seguida, implementaremos um método que carrega a lista de tarefas do Local Storage quando o serviço é inicializado.

private loadTasks(): Task[] {
  const data = localStorage.getItem('tasks');
  return data ? JSON.parse(data) : [];
}

Este método tenta recuperar um valor do localStorage usando a mesma chave tasks.

Se os dados existirem, ele converte a string JSON de volta para um array TypeScript. Se não houver nada no armazenamento, retorna um array vazio para começar do zero.

Carregando tarefas na inicialização do serviço

Queremos carregar as tarefas existentes assim que o serviço for criado. Para isso, utilizamos o construtor do serviço:

constructor() {
  this.tasks = this.loadTasks();
}

Isso garante que o array de tarefas seja imediatamente preenchido com quaisquer dados salvos anteriormente quando o aplicativo é iniciado.

Versão Final do TaskService

Tudo o que resta é garantir que nossa lista de tarefas seja salva no Local Storage sempre que ocorrer uma alteração. Isso significa que precisamos chamar o método saveTasks ao final dos métodos addTask, deleteTask e toggleTask para manter o Local Storage sincronizado com nossa lista tasks.

Veja como fica o TaskService completo com a funcionalidade de armazenamento local:

task-service.ts

task-service.ts

copy

Ao implementar saveTasks() e loadTasks() em nosso serviço, permitimos que nosso gerenciador de tarefas persista dados entre sessões. Agora, sempre que o usuário adiciona, conclui ou exclui uma tarefa, essas alterações são armazenadas no navegador e restauradas automaticamente na próxima vez que ele abrir o aplicativo.

Isso proporciona ao nosso aplicativo uma experiência de usuário muito mais profissional e confiável.

1. O que o método setItem() faz?

2. Qual é o melhor local para carregar tarefas do localStorage em um serviço Angular?

question mark

O que o método setItem() faz?

Select the correct answer

question mark

Qual é o melhor local para carregar tarefas do localStorage em um serviço Angular?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 5

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Awesome!

Completion rate improved to 3.13

bookSalvando Dados no Armazenamento Local no Angular

Deslize para mostrar o menu

Neste estágio, nosso aplicativo gerencia tarefas apenas na memória. Isso significa que toda vez que a página é atualizada, toda a lista de tarefas é perdida.

Para corrigir isso e garantir que as tarefas sejam salvas entre as sessões do usuário, usaremos o Local Storage — um recurso nativo do navegador que permite armazenar pares chave-valor diretamente no navegador do usuário.

O que é Local Storage?

Note
Definição

Local Storage é um tipo de armazenamento web fornecido pelos navegadores modernos que permite armazenar dados localmente no dispositivo do usuário na forma de pares chave-valor.

Os dados armazenados no Local Storage não desaparecem quando a página ou o navegador são fechados — permanecem disponíveis mesmo após uma reinicialização completa do navegador.

O LocalStorage armazena apenas dados como strings, portanto, ao trabalhar com objetos ou arrays, é necessário convertê-los usando JSON.stringify() antes de salvar e JSON.parse() ao recuperar.

A seguir estão os principais métodos utilizados para interagir com o Local Storage:

Adicionando Armazenamento Local

Para garantir que nossas tarefas sejam salvas mesmo após recarregar a página, é necessário implementar persistência usando o Local Storage do navegador. Isso significa que você deve ensinar nosso TaskService a salvar tarefas no armazenamento local e a carregá-las novamente quando o aplicativo iniciar.

Salvando Tarefas no Local Storage

Primeiro, é necessário um método que pegue nosso array interno de tarefas e o armazene no Local Storage do navegador.

Veja como fazer isso:

private saveTasks(): void {
  localStorage.setItem('tasks', JSON.stringify(this.tasks));
}

Este método converte o array tasks em uma string JSON usando JSON.stringify. Em seguida, armazena essa string no localStorage sob a chave tasks.

Sempre que uma tarefa for adicionada, excluída ou atualizada, este método será chamado para garantir que nossos dados estejam salvos.

Carregando Tarefas do Local Storage

Em seguida, implementaremos um método que carrega a lista de tarefas do Local Storage quando o serviço é inicializado.

private loadTasks(): Task[] {
  const data = localStorage.getItem('tasks');
  return data ? JSON.parse(data) : [];
}

Este método tenta recuperar um valor do localStorage usando a mesma chave tasks.

Se os dados existirem, ele converte a string JSON de volta para um array TypeScript. Se não houver nada no armazenamento, retorna um array vazio para começar do zero.

Carregando tarefas na inicialização do serviço

Queremos carregar as tarefas existentes assim que o serviço for criado. Para isso, utilizamos o construtor do serviço:

constructor() {
  this.tasks = this.loadTasks();
}

Isso garante que o array de tarefas seja imediatamente preenchido com quaisquer dados salvos anteriormente quando o aplicativo é iniciado.

Versão Final do TaskService

Tudo o que resta é garantir que nossa lista de tarefas seja salva no Local Storage sempre que ocorrer uma alteração. Isso significa que precisamos chamar o método saveTasks ao final dos métodos addTask, deleteTask e toggleTask para manter o Local Storage sincronizado com nossa lista tasks.

Veja como fica o TaskService completo com a funcionalidade de armazenamento local:

task-service.ts

task-service.ts

copy

Ao implementar saveTasks() e loadTasks() em nosso serviço, permitimos que nosso gerenciador de tarefas persista dados entre sessões. Agora, sempre que o usuário adiciona, conclui ou exclui uma tarefa, essas alterações são armazenadas no navegador e restauradas automaticamente na próxima vez que ele abrir o aplicativo.

Isso proporciona ao nosso aplicativo uma experiência de usuário muito mais profissional e confiável.

1. O que o método setItem() faz?

2. Qual é o melhor local para carregar tarefas do localStorage em um serviço Angular?

question mark

O que o método setItem() faz?

Select the correct answer

question mark

Qual é o melhor local para carregar tarefas do localStorage em um serviço Angular?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 5
some-alt