The best way to share data between components is to use service
.
As per official style guide it is not recommended to perform complex data manipulations inside components:
The component's responsibility is for the presentation and gathering
of information for the view. It should not care how it gets the data,
just that it knows who to ask for it. Separating the data services
moves the logic on how to get it to the data service, and lets the
component be simpler and more focused on the view.
If you still need to update data on the component level, you would need to do manual change detection checks. OnChanges lifecycle hook method is what you're looking for I believe.