Angular2+简单入门

工作多年,难免会被问及Vue, React 和 Angular的区别,记录下本人的个人见解,也是总结多年的工作心得!

阅读文本之前,建议使用过Angular1.x或Vue或者React的小伙伴查看,因为部分术语,如指令、依赖注入等术语不做过多解释,具体可以查看Angular1.xx文档了解更多!

1.快速创建

打开官网环境搭建

  1. 安装 Angular CLI
npm install -g @angular/cli
  1. 创建项目
ng new my-app
  1. 运行项目
cd my-app
ng serve
  1. 浏览器打开 http://localhost:4200/ 即可。

2.组件

2.1.组件创建

ng generate component product-list

自动生成 product-list 文件夹

- app
|- product-list.component.html // html 模块
|- product-list.component.scss // css 模块
|- product-list.component.spec.ts // unit test 模块
|- product-list.component.ts // ts 模块

2.2.组件的生命周期

参考官网

1 ngOnChanges // 如果组件绑定过输入属性,那么在 ngOnInit() 之前以及所绑定的一个或多个输入属性的值发生变化时都会调用。
2 ngOnInit // 第一次初始化指令/组件。
3 ngDoCheck // 检测,并在发生 Angular 无法或不愿意自己检测的变化时作出反应
4 ngAfterContentInit // 当初始化完组件视图及其子视图或包含该指令的视图之后调用。
5 AfterContentChecked // 每当 检查完被投影到组件或指令中的内容之后调.ngAfterContentInit() 和每次 ngDoCheck() 之后调用。
6 ngAfterViewInit // 当初始化完组件视图及其子视图或包含该指令的视图之后调用。第一次 ngAfterContentChecked() 之后调用,只调用一次。
7 ngAfterViewChecked // 每当 Angular 做完组件视图和子视图或包含该指令的视图的变更检测之后调用。 ngAfterViewInit() 和每次 ngAfterContentChecked() 之后调用。
8 ngDoCheck // 紧跟在每次执行变更检测时的 ngOnChanges() 和 首次执行变更检测时的 ngOnInit() 后调用。
9 ngAfterContentChecked // 每当 Angular 检查完被投影到组件或指令中的内容之后调用。ngAfterContentInit() 和每次 ngDoCheck() 之后调用。
10 ngAfterViewChecked // 每当 Angular 做完组件视图和子视图或包含该指令的视图的变更检测之后调用。
11 ngOnDestroy // 每当 Angular 每次销毁指令/组件之前调用并清扫。

3.路由管理

1.需要手动配置 RouterModule.forRoot

@NgModule({
  imports: [
    BrowserModule,
    ReactiveFormsModule,
    RouterModule.forRoot([ // 路由配置
      { path: '', component: ProductListComponent },
      { path: 'products/:productId', component: ProductDetailsComponent },
    ])
  ],
  declarations: [ // ng generate component xxx后会自动加入声明列表
    AppComponent,
    TopBarComponent,
    ProductListComponent,
    ProductDetailsComponent,
  ],
  1. declarations则是创建组件时会自动加入声明。

4.模块语法

  1. *ngFor 是一个 “结构型指令”。结构型指令会通过添加、删除和操纵它们的宿主元素等方式塑造或重塑 DOM 的结构。任何带有星号 * 的指令都是结构型指令。
<div *ngFor="let product of products"> 
	...
</div>
  1. 插值 {{}} -> 双向数据绑定的变量
<span> {{ product.name }}</span>
  1. 属性绑定 []
   <a [title]="product.name + ' details'">
      {{ product.name }}
    </a>```

5. 事件绑定 ()

```javascript
<div *ngFor="let product of products">
  <h3>
    <a [title]="product.name + ' details'">
      {{ product.name }}
    </a>
  </h3>
  <p *ngIf="product.description">
    Description: {{ product.description }}
  </p>
  <button (click)="share()">
    Share
  </button>
</div>

更多模块语法可以查阅官网

5.指令

  1. 内置指令:NgClass,NgStyle, NgModel
  2. 属性型指令:
    如创建myDirective 属性指令,如下:
ng generate directive myDirective

自动创建 指令文件
app/my-directive.directive.ts

import { Directive, ElementRef} from '@angular/core';

@Directive({
  selector: '[appMyDirective]'
})
export class MyDirectiveDirective {
  // 自定义指令的内容
  constructor(private el: ElementRef) {
       this.el.nativeElement.style.backgroundColor = 'yellow';
    }
}

使用,如在product-list.component.html中使用

<p [appMyDirective]="color">text will backgroudColor is yellow</p>
  1. 结构型指令: NgIf 、 NgForOf 、 NgSwitch
  2. 组合指令

6.管理数据 (依赖注入)

  1. 创建一个service
ng generate service myService

在app目录下会自动创建文件my-service.service.ts

import { Injectable } from '@angular/core';
@Injectable({  // 在项目根节点下以来注入
  providedIn: 'root'
})
export class MyServiceService {
  constructor() { }
  addItem(){
  // add item action
  }
  deleteItem(){
   // delete item action
  }
}
  1. 使用,在product-list.component.ts
import { Component } from '@angular/core';
import { MyServiceService } from '../services/my-service.service';
import { ActivatedRoute } from '@angular/router';

@Component({
  selector: 'app-product-list',
  templateUrl: './product-list.component.html',
  styleUrls: ['./product-list.component.scss']
})
export class ProductListComponent {
  constructor(
    private route: ActivatedRoute,
    private MyServiceService: MyServiceService // 注入自定义的service
  ) { }
// MyServiceService.addItem(xxx) // call MyServiceService function
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
如果你是初学者,以下是一个简单Angular 入门教程,帮助你开始学习 Angular: 1. 安装 Angular CLI:首先,你需要安装 Node.jsnpm(Node 包管理器)。然后,使用 npm 安装 Angular CLI。在命令行中运行以下命令: ``` npm install -g @angular/cli ``` 2. 创建新的 Angular 项目:使用 Angular CLI 创建一个新的 Angular 项目。在命令行中运行以下命令: ``` ng new my-app ``` 这将创建一个名为 "my-app" 的新项目,并自动安装所需的依赖项。 3. 运行应用程序:进入项目目录,然后使用以下命令启动开发服务器: ``` cd my-app ng serve ``` 这将启动一个开发服务器,并在默认端口上运行你的应用程序(通常是 http://localhost:4200)。 4. 编辑应用程序:打开你喜欢的代码编辑器,并导航到 "src/app" 目录。在这里,你将找到应用程序的根组件 "app.component.ts"。你可以编辑这个文件并开始构建你的应用程序。 5. 添加新组件:使用 Angular CLI 生成一个新的组件。在命令行中运行以下命令: ``` ng generate component my-component ``` 这将生成一个名为 "my-component" 的新组件,并自动更新应用程序中的文件和配置。 6. 在应用程序中使用组件:在根组件的模板中使用新生成的组件,或者在其他组件中使用它。 以上是一个简单Angular 入门教程。当你熟悉了这些基础知识后,你可以继续学习 Angular 的更多高级主题,如路由、表单处理、服务等。记得查阅官方文档和其他教程资源以获得更多深入的学习。祝你学习愉快!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大小小丹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值