@Input() and @Output() give a child component a way to communicate with its parent component.
@Input(): lets a parent component update data in the child component. Conversely
@Output(): lets the child send data to a parent component.
EventEmitter : Use in components with the @Output directive to emit custom events synchronously