摘要:模塊與裝飾器設(shè)計(jì)目標(biāo)就是適應(yīng)大型應(yīng)用的開發(fā),模塊的概念就是來組織不同的組件及服務(wù)。
1.模塊與裝飾器
Angular設(shè)計(jì)目標(biāo)就是適應(yīng)大型應(yīng)用的開發(fā),模塊的概念就是來組織不同的組件及服務(wù)。一個(gè)大型應(yīng)用的最終形態(tài)就是各種不同的模塊的組合
import { NgModule } from "@angular/core"; import { BrowserModule } from "@angular/platform-browser"; import { AppComponent } from "./app.component"; import { HeroService } from "./hero.service"; //NgModule裝飾器將AppModule類標(biāo)記為Angular組件 @NgModule({ //裝飾器就是一個(gè)函數(shù),作用是將元數(shù)據(jù)添加到緊跟在后面的類、類成員(屬性、方法)和函數(shù)參數(shù) imports: [ BrowserModule ], //導(dǎo)入本模塊中所需要的其他非自定義的模塊 providers: [ HeroService ], //服務(wù)模塊,并自動加入到全局的服務(wù)列表中 declarations: [ AppComponent ], //聲明本模塊中的組件,指令和管道 bootstrap: [ AppComponent ] //根組件, }) export class AppModule { } //導(dǎo)出的根模塊2.組件、指令、管道
組件在Angular中處于中心地位,但也是指令的一種,我把組件看做是含有模板的指令,管道就是anuglarjs中的過濾器,具體有哪幾種,可以參考Anugular的官方API Angular內(nèi)置管道
自定義組件
import { Component } from "@angular/core"; @Component({ //@Component裝飾器將HeroDetailComponent類標(biāo)記為Angular組件 //內(nèi)部的數(shù)據(jù)稱為元數(shù)據(jù),其它元數(shù)據(jù)裝飾器用類似的方式來指導(dǎo) Angular 的行為。 //例如@Injectable、@Input、@Output等 selector: "hero-detail", templateUrl: "../somewhere.html", styleUrls: ["./any.css"] }) export class HeroDetailComponent { //僅僅是一個(gè)類,看不到Anugular框架的影子 }
自定義指令
//指令有屬性型指令和結(jié)構(gòu)型指令 和組件 import { Directive, ElementRef, Input } from "@angular/core"; //ElementRef注入到構(gòu)造函數(shù)中,這樣指令才能訪問DOM //Input 將數(shù)據(jù)傳入指令中 @Directive({ selector: "[appHighlight]" }) export class HighlightDirective { constructor(el: ElementRef) { el.nativeElement.style.backgroundColor = "yellow"; } }
自定義管道
3.服務(wù)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是一種類實(shí)現(xiàn)某個(gè)接口的寫法,這樣就可以使用對應(yīng)接口里面的方法,如這里的transform transform(value: number, params: string): number { //value是輸入值,params是傳入的參數(shù) //value對應(yīng)上面的somevalue, params對應(yīng)上面的number let exp = parseFloat(exponent); return value + exp ; } }
服務(wù)可以為對數(shù)據(jù)的獲取和各種處理,組件就是服務(wù)的消費(fèi)者,通過依賴注入在組件中使用服務(wù)
import { Injectable } from "@angular/core"; import { Logger } from "../logger.service"; @Injectable({}) export class HeroService { //服務(wù)里面注入其他的服務(wù),通過依賴注入,相當(dāng)于執(zhí)行了new的操作,又沒有副作用 constructor(private logger: Logger){} }4.生命周期
就是被Anuglar管理的組件的生命周期鉤子,對應(yīng)的有鉤子里面的方法
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("組件退出時(shí)實(shí)現(xiàn)的方法"); } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/92822.html
摘要:首先,我們需要在入口頁面的中配置根路徑然后創(chuàng)建一個(gè)路由模塊路由配置在主模塊中導(dǎo)入配置好的路由模塊而在頁面中需要一個(gè)容器去承載上面代碼中的定義了用戶點(diǎn)擊后的路由跳轉(zhuǎn),定義該路由激活時(shí)的樣式類。 剛實(shí)習(xí)的時(shí)候用過AngularJS,那時(shí)候真的是連原生JavaScript都不會寫,依樣畫葫蘆做了幾個(gè)管理后臺。然后突然換項(xiàng)目了,AngularJS就不寫了,感覺前前后后接觸了一年多的Angula...
摘要:延伸閱讀學(xué)習(xí)與實(shí)踐資料索引與前端工程化實(shí)踐前端每周清單半年盤點(diǎn)之篇前端每周清單半年盤點(diǎn)之與篇前端每周清單半年盤點(diǎn)之篇 前端每周清單專注前端領(lǐng)域內(nèi)容,以對外文資料的搜集為主,幫助開發(fā)者了解一周前端熱點(diǎn);分為新聞熱點(diǎn)、開發(fā)教程、工程實(shí)踐、深度閱讀、開源項(xiàng)目、巔峰人生等欄目。歡迎關(guān)注【前端之巔】微信公眾號(ID:frontshow),及時(shí)獲取前端每周清單;本文則是對于半年來發(fā)布的前端每周清單...
摘要:四結(jié)論本章幾乎所有的內(nèi)容在單元測試經(jīng)常使用到的東西特別是異步部分,三種不同異步方式并非共存的,而是需要根據(jù)具體業(yè)務(wù)而采用。否則,你會發(fā)現(xiàn)真難寫單元測試。自此,我們算是為寫單元測試打下了基礎(chǔ)。 以下是我假定那些極少或壓根沒寫單元測試的人準(zhǔn)備的,因此,會白話解釋諸多概念性問題,同時(shí)會結(jié)合 Jasmine 與之對應(yīng)的方法進(jìn)行講解。 一、概念 Test Suite 測試套件,哪怕一個(gè)簡單的類,...
摘要:一般來說,聲明式編程關(guān)注于發(fā)生了啥,而命令式則同時(shí)關(guān)注與咋發(fā)生的。聲明式編程可以較好地解決這個(gè)問題,剛才提到的比較麻煩的元素選擇這個(gè)動作可以交托給框架或者庫區(qū)處理,這樣就能讓開發(fā)者專注于發(fā)生了啥,這里推薦一波與。 本文翻譯自FreeCodeCamp的from-zero-to-front-end-hero-part。 繼續(xù)譯者的廢話,這篇文章是前端攻略-從路人甲到英雄無敵的下半部分,在...
摘要:自定義指令中有很多內(nèi)置指令,一般都是以開頭的比如等等。本文介紹的自定義指令的用法。該參數(shù)的意思是替換指令的內(nèi)容,更改上面的例子。將屬性綁定到父控制器的域中學(xué)習(xí)概念多指令中的參數(shù)中增加了的值和的點(diǎn)擊函數(shù)。 自定義指令 angularjs中有很多內(nèi)置指令,一般都是以ng開頭的;比如:ng-app,ng-click,ng-repeat等等。本文介紹angularjs的自定義指令的用法。 指令...
閱讀 3958·2021-11-22 13:53
閱讀 1688·2021-08-25 09:39
閱讀 2418·2019-08-29 18:36
閱讀 1479·2019-08-26 13:35
閱讀 1220·2019-08-26 11:57
閱讀 1686·2019-08-23 15:57
閱讀 809·2019-08-23 14:55
閱讀 1171·2019-08-23 14:51