热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Angular常用概念

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

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';}
}

自定义管道

The hero's birthday is {{ birthday | date:'yyyy.MM.dd' }}

The current pipe {{ somevalue | paramStrength:'number' }}


import { Pipe, PipeTransform } from '@angular/core';@Pipe({name: 'paramStrength'})
export class ExponentialStrengthPipe implements PipeTransform {
//implements是一种类实现某个接口的写法,这样就可以使用对应接口里面的方法,如这里的transformtransform(value: number, params: string): number {//value是输入值,params是传入的参数//value对应上面的somevalue, params对应上面的numberlet 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` methodngOnInit() { console.log("组件初始化");}ngOnDestroy(){console.log("组件退出时实现的方法");}
}



推荐阅读
  • 在本教程中,我们将看到如何使用FLASK制作第一个用于机器学习模型的RESTAPI。我们将从创建机器学习模型开始。然后,我们将看到使用Flask创建AP ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • IhaveconfiguredanactionforaremotenotificationwhenitarrivestomyiOsapp.Iwanttwodiff ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 本文介绍了UVALive6575题目Odd and Even Zeroes的解法,使用了数位dp和找规律的方法。阶乘的定义和性质被介绍,并给出了一些例子。其中,部分阶乘的尾零个数为奇数,部分为偶数。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • 预备知识可参考我整理的博客Windows编程之线程:https:www.cnblogs.comZhuSenlinp16662075.htmlWindows编程之线程同步:https ... [详细]
  • Java自带的观察者模式及实现方法详解
    本文介绍了Java自带的观察者模式,包括Observer和Observable对象的定义和使用方法。通过添加观察者和设置内部标志位,当被观察者中的事件发生变化时,通知观察者对象并执行相应的操作。实现观察者模式非常简单,只需继承Observable类和实现Observer接口即可。详情请参考Java官方api文档。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
author-avatar
信步老街
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有