Angular 2 - Hello World (es6)

John Lindquist
InstructorJohn Lindquist
Share this video with your friends

Social Share Links

Send Tweet
Published 9 years ago
Updated 5 years ago

Getting started with Angular 2 involves a new focus on building out components. John walks through the process of bootstrapping your first component as well as how to include one component inside another.

[00:03] An Angular 2 Hello World that involves bootstrapping a component and that component will have a selector to find the element you want to bootstrap, and a template to show what you want to put in that element.

[00:12] We'll start by calling our element "Egghead," just to customize it a bit. This is all we're going to do through our HTML. I'll switch over to our JavaScript file. Now I need to create a class for the component that will be bootstrapped.

[00:27] This class will need two decorators, one being the component, which we need to define the selector, which is basically going to look up that element, which we called, "Egghead." Because we're using ES6 and this guy isn't on the window, we actually have to import him. Say "Component," so we'll import the component from Angular 2 /Angular 2.

[00:55] And then we need a view, which is where we can define our template. So we say "Template," and we'll just define this as an h1 saying "Welcome." We have to remember to import our view as well, so we'll say "View" here.

[01:10] The final piece is to bootstrap this class here, which has been decorated. We say, "Bootstrap," and just pass in the class name. Don't forget we also need to "Import bootstrap" as well. I'll save this and you can see we have a lovely Hello World application.

[01:29] From here on out if we're just building this egghead application, we'd just bootstrap this and we wouldn't bootstrap anywhere else. It's almost like saying, "ng-app on a div here," if you want to force your Angular 1 concepts in Angular 2. But I find it's best to disconnect that, because you'll never see ng-controller attributes or things like that from Angular 1, as the syntax has shifted to make this much more flexible.

[01:54] From here on out, everything you define inside of this template, any child components you create, define in there will work just fine without bootstrapping those components. So if I quickly say "Component," "Selector," "Widget," "View," "Template," with an h2 of Hello World, and then just a class of "Widget."

[02:27] As long as we tell this view that it has directives, and that one of them is the widget, and that's the name of the class, I can go ahead and drop the widget element, because the selector here's going to match up with this. Hit "Save," and now use our widget inside of our application that was bootstrapped.

[02:52] From here on out, from where we bootstrapped, it's just components all the way down, as a tree....

Jian Liao
Jian Liao
~ 9 years ago

Nice lesson. But I hope to see how you setup your environment.

Kent C. Dodds
Kent C. Dodds
~ 9 years ago

Right now, setting up the environment is.... tricky... Definitely something the angular team will be working on improving for sure.

But if you want to start playing around with it, I highly recommend you take a look at this repo: https://github.com/ShMcK/ng2Challenges

Italo
Italo
~ 9 years ago

Guys is recommendable use 2.0 for prod or is best wait for the 2.1??

Eric
Eric
~ 9 years ago

Angular2 is nowhere near to be production ready - it's not even a final 2.0.

Keep the production code with 1.x still.

Tommy
Tommy
~ 8 years ago

Nice lesson. But I hope to see how you setup your environment.

Seconded. Very informative lesson though, otherwise.

Daryl
Daryl
~ 8 years ago

I'm slightly confused; you've imported component and views, but are the @ symbols part of es6, or typescript?

Joel Hooks
Joel Hooks
~ 8 years ago

I'm slightly confused; you've imported component and views, but are the @ symbols part of es6, or typescript?

@ is a decorator, and in this case is TypeScript syntax. Decorators with the @ are also an ES7 (2016) proposed feature, but are only available through the use of Babel when coding JavaScript.

Harshesh
Harshesh
~ 8 years ago

Good tutorial! Woupld really appreciate if there are more content/videos of angular2 in ES6 than TypeScript.

Although, I have one question: since you had two @Components and @View, how does angular determine which @View goes with which given @Component?

Like, for 'widget' @Component, @View was just '<div>...' so I am confused on HOW angular2 determines the given @View, @Component and class.

Thanks in advance! :)

Joel Hooks
Joel Hooks
~ 8 years ago

Good tutorial! Woupld really appreciate if there are more content/videos of angular2 in ES6 than TypeScript.

We are generally going to recommend that you stick with TypeScript for Angular 2. You don't have to learn much on top of ES6, and TypeScript is wonderful for decorators and dependency injection.

The use cases for developing Angular 2 outside of TypeScript exist, but they would need to be very specific.

Embrace the TS! 😉

Harshesh
Harshesh
~ 8 years ago

Thanks for the feedback! But, personally I would prefer to stick with ES6, not a fan of TypeScript.

However, I am more anxious to know about the question/confusion I asked in my comment above.

John Lindquist
John Lindquistinstructor
~ 8 years ago

@View is deprecated since the beta, just use @Component now.

Harshesh
Harshesh
~ 8 years ago

Thanks! So now to define a component in ng2 you only need @Component and 'class' ?

John Lindquist
John Lindquistinstructor
~ 8 years ago

Yes. https://egghead.io/series/angular-2-fundamentals

Markdown supported.
Become a member to join the discussionEnroll Today