Comunicação Entre Componentes no Angular
Como Eles Estão Conectados?
O TaskListComponent irá gerenciar um array de tarefas, onde cada tarefa é um objeto com os campos id, title e completed. Para exibir cada tarefa, utilizaremos o TaskComponent.
Além disso, o TaskComponent irá se comunicar com seu componente pai sobre ações do usuário, como quando uma tarefa deve ser excluída ou marcada como concluída. Essa interação ocorrerá por meio da emissão de eventos.
Implementação da Lógica do TaskListComponent
Vamos criar um componente responsável por gerenciar a lista de tarefas. Dentro dele, definiremos um array de tarefas e também adicionaremos dois métodos — deleteTask() e toggleStatus() — para lidar com o gerenciamento das tarefas.
task-list.ts
task-list.html
task-list.css
- A lista de tarefas (
tasks) é gerenciada dentro do componente, tornando oTaskListComponento controlador central; - O método
deleteTask()filtra a tarefa pelo seuid; - O método
toggleStatus()localiza a tarefa peloide alterna o status decompleted.
Este código utiliza a diretiva *ngFor para percorrer o array tasks e criar um TaskComponent para cada tarefa.
Vamos analisar mais detalhadamente como o *ngFor funciona na próxima seção.
-
[task]="task"— passa a tarefa atual para o componente filho para que ele possa exibi-la; -
(onDelete)="deleteTask($event)"— escuta o eventoonDeletedo componente filho e chamadeleteTask()para remover a tarefa; -
(onToggle)="toggleStatus($event)"— escuta o eventoonTogglee chamatoggleStatus()para alterar o status da tarefa.
Decoradores: @Input() e @Output()
Agora é hora de conectar o TaskComponent com o TaskListComponent, e para isso, utilizaremos os decoradores @Input() e @Output().
No Angular, os decoradores @Input() e @Output() são ferramentas essenciais para a comunicação entre componentes. Eles permitem passar dados para dentro de um componente e emitir eventos para fora de um componente. Veja um resumo rápido:
Aqui está um exemplo de como eles funcionam no TaskComponent:
task.ts
task.html
task.css
No nosso caso, task é o objeto passado do componente pai TaskListComponent para o TaskComponent.
Quando o usuário exclui uma tarefa ou alterna seu status, o TaskComponent emite eventos que o componente pai escuta.
@Output() e EventEmitter são usados para notificar o componente pai quando algo acontece no componente filho. Esses decoradores permitem que o componente filho comunique ações como exclusão de tarefas ou alterações de status ao pai.
O método deleteTask() é chamado quando o usuário deseja excluir uma tarefa. Ele emite o id da tarefa, permitindo que o componente pai remova a tarefa de sua lista.
O método toggleTask() alterna o status de conclusão da tarefa e informa o componente pai sobre essa alteração.
Como Tudo Funciona em Conjunto
-
TaskListComponentpassa uma tarefa paraTaskComponentusando@Input(); -
O usuário interage com a tarefa (como clicando em "Excluir");
-
TaskComponentemite um evento (onDeleteouonToggle) com oidda tarefa; -
TaskListComponentcaptura o evento e atualiza a lista de tarefas; -
O Angular atualiza automaticamente a interface com base nos dados atualizados.
Dessa forma, @Input() e @Output() permitem uma comunicação limpa e eficiente entre componentes, mantendo a estrutura organizada e reativa.
1. O que o decorador @Input() faz no Angular?
2. Qual é o propósito do EventEmitter no Angular?
3. No TaskComponent, o que faz o decorador @Output()?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 3.13
Comunicação Entre Componentes no Angular
Deslize para mostrar o menu
Como Eles Estão Conectados?
O TaskListComponent irá gerenciar um array de tarefas, onde cada tarefa é um objeto com os campos id, title e completed. Para exibir cada tarefa, utilizaremos o TaskComponent.
Além disso, o TaskComponent irá se comunicar com seu componente pai sobre ações do usuário, como quando uma tarefa deve ser excluída ou marcada como concluída. Essa interação ocorrerá por meio da emissão de eventos.
Implementação da Lógica do TaskListComponent
Vamos criar um componente responsável por gerenciar a lista de tarefas. Dentro dele, definiremos um array de tarefas e também adicionaremos dois métodos — deleteTask() e toggleStatus() — para lidar com o gerenciamento das tarefas.
task-list.ts
task-list.html
task-list.css
- A lista de tarefas (
tasks) é gerenciada dentro do componente, tornando oTaskListComponento controlador central; - O método
deleteTask()filtra a tarefa pelo seuid; - O método
toggleStatus()localiza a tarefa peloide alterna o status decompleted.
Este código utiliza a diretiva *ngFor para percorrer o array tasks e criar um TaskComponent para cada tarefa.
Vamos analisar mais detalhadamente como o *ngFor funciona na próxima seção.
-
[task]="task"— passa a tarefa atual para o componente filho para que ele possa exibi-la; -
(onDelete)="deleteTask($event)"— escuta o eventoonDeletedo componente filho e chamadeleteTask()para remover a tarefa; -
(onToggle)="toggleStatus($event)"— escuta o eventoonTogglee chamatoggleStatus()para alterar o status da tarefa.
Decoradores: @Input() e @Output()
Agora é hora de conectar o TaskComponent com o TaskListComponent, e para isso, utilizaremos os decoradores @Input() e @Output().
No Angular, os decoradores @Input() e @Output() são ferramentas essenciais para a comunicação entre componentes. Eles permitem passar dados para dentro de um componente e emitir eventos para fora de um componente. Veja um resumo rápido:
Aqui está um exemplo de como eles funcionam no TaskComponent:
task.ts
task.html
task.css
No nosso caso, task é o objeto passado do componente pai TaskListComponent para o TaskComponent.
Quando o usuário exclui uma tarefa ou alterna seu status, o TaskComponent emite eventos que o componente pai escuta.
@Output() e EventEmitter são usados para notificar o componente pai quando algo acontece no componente filho. Esses decoradores permitem que o componente filho comunique ações como exclusão de tarefas ou alterações de status ao pai.
O método deleteTask() é chamado quando o usuário deseja excluir uma tarefa. Ele emite o id da tarefa, permitindo que o componente pai remova a tarefa de sua lista.
O método toggleTask() alterna o status de conclusão da tarefa e informa o componente pai sobre essa alteração.
Como Tudo Funciona em Conjunto
-
TaskListComponentpassa uma tarefa paraTaskComponentusando@Input(); -
O usuário interage com a tarefa (como clicando em "Excluir");
-
TaskComponentemite um evento (onDeleteouonToggle) com oidda tarefa; -
TaskListComponentcaptura o evento e atualiza a lista de tarefas; -
O Angular atualiza automaticamente a interface com base nos dados atualizados.
Dessa forma, @Input() e @Output() permitem uma comunicação limpa e eficiente entre componentes, mantendo a estrutura organizada e reativa.
1. O que o decorador @Input() faz no Angular?
2. Qual é o propósito do EventEmitter no Angular?
3. No TaskComponent, o que faz o decorador @Output()?
Obrigado pelo seu feedback!