3.1 Component Trees
In this lesson we'll take a look at the architecture of a typical Angular application, and we'll add some more components to the example application.
1.Introduction6 lessons, 42:00
2.Get Started With Angular7 lessons, 42:38
3.Core Concepts7 lessons, 55:20
4.Template Deep Dive11 lessons, 1:10:56
5.Forms10 lessons, 1:45:41
6.Routing9 lessons, 1:15:10
7.Using the HTTP Client5 lessons, 56:24
8.Testing10 lessons, 1:23:27
9.Building for Production1 lesson, 03:40
10.Conclusion1 lesson, 01:32
3.1 Component Trees
Hi folks. In this lesson, I just wanna spend a few minutes talking about the architecture of a typical application. Building an Angular application is largely building a series of components and wiring them together in order to create different states of the application. We are able to create complex hierarchies of components, starting with a root component, and then having other components nested inside this root component. And perhaps components nested inside these components, and so on and so forth. This tree-like application structure that emerges has a number of benefits like cross component communication and efficient data flow through the application. As a user navigates around our application, Angular will create and destroy the various components that are visible on the screen as necessary, and it will manage the complex tree of components for us. We never need to really be involved in that process but it is useful to understand what happens behind the scenes. So our example application, the JS blackjack game, will need a couple of additional components. We've already got the start component, so let's add an end component and a game component. Great, okay, so as with the start component, we can add the template and some very basic styling for these two components. Let's start with the end component. So again it's just a very simple HTML template at this stage with no special Angular syntax or bindings or anything at all, just some HTML with some class names. This component will need some styling, so let's open up the style sheet for the component. So this is styling that's only gonna be used by the end component itself, and that's why it goes into the end component's style sheets. So the template for the game component in game.component.html is very similar, let's open that up and add it. In fact to save time we can largely copy the template from the end component. It differs slightly in that it doesn't have an end message. And instead of showing the dealer's hand, it shows your hand, the player's hand. But aside from that, it's almost identical. The game component doesn't require any custom styling of its own. But there are a number of class names that are used in both the game and end components. So we can have the styling for these to the global_app.scss file. So last of all, there's one more component that we need to add. That is a controls component that will contain some buttons that are used in both the game and end screens. So let's add that component now. The template for this component will be just a group of buttons in a container div. And the styling for these is also fairly minimal that will just go into the controls.component.scss file. So now we can add the new components that we've added in this lesson into the application. The game and end components can go into the home component. The controls component will be used within both the game and end components. So let's just go back to the browser now. And we can see that we've got all these new elements on the screen, everything's been rendered as it should be. And the application is now built from a number of different components. So in this lesson we learn a little bit about the architecture of a typical Angular application, and we saw that it's largely a collection of components which Angular assembles into a tree at run time. And these components have either a parent, child or a sibling or some other type of relationship. Thanks for watching.