麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 用法介紹main.ts

用法介紹main.ts

來源:千鋒教育
發布人:xqq
時間: 2023-11-21 15:49:53 1700552993

main.ts是 TypeScript 應用的入口文件。所有的編寫的 TypeScript 代碼都將在此文件中被編譯執行。 下面從多個方面深入闡述 main.ts 的相關細節。

一、TypeScript 的配置

在 main.ts 中,我們需要先引入相關的模塊,比如 Angular 的模塊、服務、指令等。這些模塊在 TypeScript 編譯過程中需要被處理以正確使用。因此,我們在文件頭部添加了以下代碼:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';

除了引入這些常用的模塊之外,還需要考慮如何編譯 TypeScript 代碼。在 Angular 中一般使用 Angular CLI 來管理整個工程,并且默認引入了相關配置。下面是一份經典的 tsconfig.json 文件的配置:

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": [
      "es2017",
      "dom"
      ]
    }
}

以上幾個配置屬性的含義為:

“compileOnSave”: false 方便測試過程中不需要編譯 "baseUrl": "./" 是基礎路徑,和 src 同級 "outDir": "./dist/out-tsc" 編譯輸出目錄 "sourceMap": true 生成 sourceMap,方便調試 "declaration": false 不生成 *.d.ts 聲明文件 "moduleResolution": "node" 使用 Node 的查詢方式 "emitDecoratorMetadata": true 標記調用的裝飾器 "experimentalDecorators": true 允許使用實驗性語法 "lib": ["es2017", "dom"] 使用的庫是 ES2017 和 DOM

二、使用 @NgModule 裝飾器

@NgModule 裝飾器是 Angular 所提供的模塊裝飾器,用來修飾模塊并且定義模塊的屬性。下面是一份基礎模塊的示例,包含了常用的屬性設置:

@NgModule({
  declarations: [
    AppComponent,  // 聲明組件
  ],
  imports: [
    BrowserModule, FormsModule, HttpModule  // 引入依賴的模塊
  ],
  providers: [
    AppService  // 新建服務并添加到 providers 數組中
  ],
  bootstrap: [AppComponent]  // 指定啟動組件
})
export class AppModule { }

其中,@NgModule 裝飾器的各項屬性含義如下:

declarations:本模塊中聲明的組件、指令、管道 imports:導入的 Angular 模塊 providers:定義的服務 bootstrap:應用的主視圖,根組件

三、組件的構建及生命周期

組件是 Angular 應用的核心內容,理解組件的構建方式以及生命周期比較容易上手。下面是一個組件的示例:

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.less']
})
export class AppComponent {
  title = 'My Angular App';
}

其中,@Component 裝飾器需要接收一個 metadata 對象,里面各個屬性的定義如下:

selector:組件的選擇器,用于在模板中調用組件 templateUrl:組件模板的文件路徑 styleUrls:組件樣式的文件路徑

組件生命周期是指在創建、渲染、更新和銷毀組件時所執行的方法。常用的生命周期包括:

ngOnChanges:數據綁定輸入屬性(@Input)時調用 ngOnInit:組件實例化時調用,用于初始化實例數據 ngDoCheck:監測并檢查數據變化時調用,不建議在這個函數中寫大量代碼 ngAfterContentInit:投影內容(用于內容的方式,比如 ng-content)初始化后調用 ngAfterViewInit:視圖初始化后調用,即當組件及其子組件在HTML模板中渲染完畢后調用 ngOnDestroy:組件及其子組件被銷毀后調用,用于清除定時器、取消訂閱等操作

四、使用指令和服務

在 Angular 應用中,指令和服務是非常重要的一部分。指令能夠直接操作DOM,并通過與其他指令和組件的交互來實現業務邏輯。服務用于復用組件之間共享的數據和邏輯。

下面是一個指令的示例:

@Directive({
  selector: '[myHighlight]'
})
export class HighlightDirective {
  constructor(el: ElementRef) {
    el.nativeElement.style.backgroundColor = 'yellow';
  }
}

該指令的作用是將一個 HTML 元素的背景色變為黃色。其中,@Directive 裝飾器需要接收一個 metadata 對象,里面的屬性都是可選的,詳見以下說明:

selector:選擇器,指明指令用于哪個 HTML 元素 providers:提供一個或多個依賴注入器的服務 exportAs:允許組件導出一個指令的別名 inputs:當指令用在一個元素上時,綁定輸入屬性 outputs:當指令用在一個元素上時,綁定輸出事件 host:定義用于監聽宿主元素 DOM 事件的匹配器

服務則是對數據的封裝和重用,比如我們可以將一些數據的獲取或處理過程封裝到一個服務中。下面是一個使用 RxJS 的服務實現異步請求的示例:

import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import { Observable } from 'rxjs/Observable';

@Injectable()
export class AppService {
  constructor(private http: Http) { }
  fetchData(): Observable {
    return this.http.get('url/to/service')
      .map(res => res.json())
      .catch(err => Observable.throw(err.json()));
  }
}

上面的服務通過注入 Http 類來發送異步請求,通過 RxJS 的 map 和 catch 操作符來處理數據的流轉,最終通過 Observable 對象將數據流發射給訂閱者。

總結

在 Angular 應用中,main.ts 文件作為入口文件對整個應用的配置和細節進行了定義。在編寫的過程中需要考慮配置 TypeScript、使用 NgModule 裝飾器、組件生命周期、使用指令和服務等方面。 編寫好的代碼由模塊、組件、指令、服務等組成,使得整個應用的視圖、邏輯、業務剝離、獨立。

聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 美女奶口隐私免费视频网站| 生活片一级| 波多野结衣教师在线| 水蜜桃视频在线免费观看| 美女无遮挡免费视频网站| a毛片在线看片免费| 2018中文字幕第一页| 三上悠亚国产精品一区| 午夜视频免费成人| 亚洲美女人黄网成人女| 欧美精品亚洲精品日韩专区va| 成人免费播放视频777777| 鲁啊鲁在线视频| 国产精品久久久久久一区二区三区| 67194线路1(点击进入)| 中文字幕无码久久精品| 精品久久久中文字幕二区| 动漫h肉yin文| 客厅餐桌椅子上波多野结衣| 护士们的放荡交换全文| 国产三级在线播放线| 亚洲另类小说图片| 亚洲精品午夜久久久伊人| 风间由美juy135在线观看| 英国性经典xxxx| 麻豆天美精东果冻星空| 国内精品久久久久久久影视麻豆| 晚上看b站直播软件| 一级电影毛片| 国产精品久久久久久久久电影网| 色综合天天综合网国产成人网| 中文字幕福利片| 欧美午夜久久| 天堂а√8在线最新版在线| 日本在线理论片| 好男人资源在线www免费| 国产精品区免费视频| 军人武警gay男同gvus69| 国产三级在线观看视频不卡| 日本色视| 欧美亚洲国产日韩综合在线播放|