加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Angular 常用概念

发布时间:2020-12-17 08:27:28 所属栏目:安全 来源:网络整理
导读:1.模块与装饰器 Angular设计目标就是适应大型应用的开发,模块的概念就是来组织不同的组件及服务。一个大型应用的最终形态就是各种不同的模块的组合 import { NgModule } from '@angular/core';import { BrowserModule } from '@angular/platform-browser';i

1.模块与装饰器

Angular设计目标就是适应大型应用的开发,模块的概念就是来组织不同的组件及服务。一个大型应用的最终形态就是各种不同的模块的组合

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent }  from './app.component';
import { HeroService } from './hero.service';

//NgModule装饰器将AppModule类标记为Angular组件
@NgModule({ 
   //装饰器就是一个函数,作用是将元数据添加到紧跟在后面的类、类成员(属性、方法)和函数参数
  imports:      [ BrowserModule ],//导入本模块中所需要的其他非自定义的模块
  providers:    [ HeroService ],//服务模块,并自动加入到全局的服务列表中
  declarations: [ AppComponent ],//声明本模块中的组件,指令和管道
  bootstrap:    [ AppComponent ]  //根组件,
})
export class AppModule { }  //导出的根模块

2.组件、指令、管道

组件在Angular中处于中心地位,但也是指令的一种,我把组件看做是含有模板的指令,管道就是anuglarjs中的过滤器,具体有哪几种,可以参考Anugular的官方API Angular内置管道
自定义组件

import { Component } from '@angular/core';

@Component({ //@Component装饰器将HeroDetailComponent类标记为Angular组件
    //内部的数据称为元数据,其它元数据装饰器用类似的方式来指导 Angular 的行为。 
    //例如@Injectable、@Input、@Output等
  selector: 'hero-detail',templateUrl: '../somewhere.html',styleUrls: ['./any.css']
})

export class HeroDetailComponent {
    //仅仅是一个类,看不到Anugular框架的影子
}

自定义指令

//指令有属性型指令和结构型指令 和组件
import { Directive,ElementRef,Input } from '@angular/core';

//ElementRef注入到构造函数中,这样指令才能访问DOM
//Input 将数据传入指令中
@Directive({ selector: '[appHighlight]' })
export class HighlightDirective {
    constructor(el: ElementRef) {
       el.nativeElement.style.backgroundColor = 'yellow';
    }
}

自定义管道

<p>The hero's birthday is {{ birthday | date:'yyyy.MM.dd' }}</p>

<p>The current pipe {{ somevalue | paramStrength:'number' }}</p>
import { Pipe,PipeTransform } from '@angular/core';

@Pipe({name: 'paramStrength'})
export class ExponentialStrengthPipe implements PipeTransform {
//implements是一种类实现某个接口的写法,这样就可以使用对应接口里面的方法,如这里的transform
  transform(value: number,params: string): number {
    //value是输入值,params是传入的参数
    //value对应上面的somevalue, params对应上面的number
    let exp = parseFloat(exponent);
    return value + exp ;
  }
}

3.服务

服务可以为对数据的获取和各种处理,组件就是服务的消费者,通过依赖注入在组件中使用服务

import { Injectable } from '@angular/core';
import { Logger } from '../logger.service';

@Injectable({})
export class HeroService {
  //服务里面注入其他的服务,通过依赖注入,相当于执行了new的操作,又没有副作用
  constructor(private logger: Logger){}
}

4.生命周期

就是被Anuglar管理的组件的生命周期钩子,对应的有钩子里面的方法

import { OnInit,OnDestroy } from '@angular/core';

//OnInit接口里面的ngOnInit方法
export class PeekABoo implements OnInit,OnDestroy {
  constructor() { }

  // implement OnInit's `ngOnInit` method
  ngOnInit() { 
    console.log("组件初始化");
  }

  ngOnDestroy(){
    console.log("组件退出时实现的方法");
  }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读