Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Sobre Import e Declarations

Eu já fiz uma pergunta sobre isso e há uma outra feita por outro aluno aqui no forum, mas mesmo assim eu não consegui entender direito o import e o declarations. As respostas que o professor deu foram: - import indica as dependências do módulo. Declaraction indica o que ele oferece para ser usado. - declarations: um módulo precisa explicitar o que ele tem, ou seja, o que ele declara.

Não entendi bem o significado de que ele declara ou o que ele oferece para ser usado.

O que cheguei a conclusão, e gostaria de saber se é isso que estou pensando, é que o declarations contém as páginas(macros não reutilizáveis [pag lista usuário, pag configuraçao, pag login e etc]) e o import contém partes/módulos/conteúdo reutilizáveis pequenos para utilizar nos módulos indicados no declarations. Ou seja, o app.module é o que reúne tudo, todas as views e partes flexíveis do sistema. Ele precisa definir todos as páginas/views e um array e todas as partes reutilizáveis em outro. Outra coisa, esses partes reutilizáveis tem um módulo porque esse é a funcionalidade principal de um módulo?

Desculpa tanta dúvida, mas esse curso está um pouco mais difícil =D.

3 respostas
solução!

Eu paro você na rua e pergunto quanto você tem no bolso. Daí você declara que tem R$ 20,00. Isso significa que posso pegar com você R$ 20,00 porque é o que você declarou. Porém, você precisa de mais dinheiro para fazer outras coisas além de me emprestar R$ 20, você vai lá na carteira do seu pai e importa R$ 50 para dentro da sua carteira, porque só com R$ 20 você não conseguirá fazer o que deseja.

Um módulo declara o que é dele, que faz apenas parte dele para que possa ser usado por qualquer componente que faça parte desse módulo. Um módulo importa outro quando precisa de componentes declarados nesse módulos. Realizando o importe evita que você importe cada componente declarado de outros módulos individualmente.

Professor, só pra ver se eu entendi direito:

@NgModule({
    imports: [BrowserModule, FotoModule, HttpModule, PainelModule],
    declarations: [AppComponent, CadastroComponent],
    bootstrap: [AppComponent]
})
export class AppModule {

}

No código acima significa que, dada a classe AppModule, ela disponibiliza para que eu utilize AppComponent, CadastroComponent, e ainda importa código das classes BrowserModule, FotoModule, HttpModule e PainelModule, tornando também o código dessas classes disponíveis para que eu utilize. É isso mesmo ?

E uma outra coisa, componentes sãp sempre colocados em declarations e módulos são sempre colocados em imports ?

Grato

Oi Jorge! Exato! :)