- Overview
- Transcript
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
1.1Introduction00:48
1.2Get Started With Angular-CLI11:09
1.3Developing With Angular-CLI13:17
1.4TypeScript vs. JavaScript06:54
1.5Angular Modules From the CLI04:31
1.6CLI Options05:21
2.Get Started With Angular7 lessons, 42:38
2.1Bootstrapping the Application04:30
2.2The Application Module04:15
2.3The Application Component08:06
2.4Component Styling03:06
2.5Global Styling05:11
2.6Creating a Component With the CLI09:34
2.7Creating a Service With the CLI07:56
3.Core Concepts7 lessons, 55:20
3.1Component Trees06:20
3.2Dependency Injection06:52
3.3Content Projection05:38
3.4Component and Directive Lifecycle Methods06:31
3.5Component-Only Lifecycle Methods05:28
3.6Decorators07:36
3.7Models16:55
4.Template Deep Dive11 lessons, 1:10:56
4.1Basic Data Binding With Interpolation05:35
4.2Property Bindings07:07
4.3Attribute Bindings03:29
4.4Event Bindings08:16
4.5Class and Style Bindings05:44
4.6The `NgClass` and `NgStyle` Directives05:04
4.7The `*ngIf` Directive04:41
4.8The `*ngFor` Directive09:29
4.9Inputs05:33
4.10Using Pipes in a Template07:31
4.11Using Pipes in a Class08:27
5.Forms10 lessons, 1:45:41
5.1Handling User Input With Template Reference Variables07:06
5.2Template-Driven Forms11:10
5.3Template-Driven Forms: Validation and Submission14:00
5.4Reactive Forms11:26
5.5Using a `FormBuilder`08:01
5.6Reactive Validation With Built-in Validators14:53
5.7Creating Custom Validators for Template-Driven Forms12:18
5.8Creating Custom Validators for Reactive Forms08:26
5.9Observing Form State Changes12:40
5.10Working With the `@HostListener` Decorator05:41
6.Routing9 lessons, 1:15:10
6.1Defining and Configuring Routes07:53
6.2Rendering Components With Router Outlets10:14
6.3Using Router Links for Navigation05:25
6.4Navigating Routes Using the Router06:24
6.5Determining the Active Route Using an Activated Route07:16
6.6Working With Route Parameters10:42
6.7Using Route Guards07:36
6.8Observing Router Events10:55
6.9Adding Child Routes08:45
7.Using the HTTP Client5 lessons, 56:24
7.1Sending an HTTP Request10:52
7.2Handling an HTTP Response11:22
7.3Setting Request Headers12:33
7.4Intercepting Requests09:04
7.5Finishing the Example Application12:33
8.Testing10 lessons, 1:23:27
8.1Service Unit Test Preparation10:45
8.2Unit Testing Services13:24
8.3Component Unit Test Preparation12:35
8.4Unit Testing Components07:27
8.5Unit Testing Component Templates06:58
8.6Unit Testing Pipes04:41
8.7Unit Testing Directives04:56
8.8Unit Testing Validators04:48
8.9Unit Testing Observables11:37
8.10Unit Testing HTTP Interceptors06:16
9.Building for Production1 lesson, 03:40
9.1Building for Production03:40
10.Conclusion1 lesson, 01:32
10.1Conclusion01: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.