Angular 6 render e comunicação entre components

LbrT

Power Member
Bom dia,

Estou a iniciar me em angular e deparei me com duas questões que gostava de tentar esclarecer com que percebe disto.

1 - Criei uma aplicação em que na minha pagina principal tenho uma sidanav, uma toolbar e content.

A sidenav e a toolbar são components que serão mostrados caso o utilizador esteja logado e o content tem um <router-outlet> por onde serão passados os vários componentes da aplicação. Sempre que faço login o render dos componentes sidenav e toolbar é feito com sucesso com o (ngOnInit) mas quando faço logout(num component filho que será passado pelo router-outlet) não, pois não volta a correr a função e fazer o respectivo render da página. Resolvi usando o (OnDoCheck), mas reparei que sempre que insiro um carácter( ou qualquer outra acção) ele é disparado. Isto não é muito pesado para a aplicação?

Existe outra maneira de correr uma função na "app.component.ts" sempre e só se for feito logout, neste caso, num component filho que ira passar no <router-outlet> ?

2- Tentei usar uma flag passando a variável filho -> pai.

Usei o @output no filho com o EventEmitter mas a duvida está como o recebo no pai. Normalmente faria <app-filho (variavel-filho)="funcao-pai($event)">, mas como estou a passar estes componentes com o <router-outlet> existe alguma maneira de passar esse valor?



Espero ter passado a minha dúvida de forma minimamente perceptível.

Desde já obrigado,

Cumprimentos. Luís Brito
 
hint*
Nunca faças store de data em components, usa sempre um service para tratar de dados, tenta fazer os componentes o mais puro possivel.
 
Back
Topo