第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

組件

组件的意义

组件通常控制着视图中的一块区域。
一个大型应用都是由小型、独立和可复用的组件构成。
本质上,组件是一个带有 @Component 装饰器的类。

组件的结构

import { Component, OnInit } from '@angular/core';
import { APIService } from './common/service/api.service';

@Component({
  // 组件选择器,当在模板中使用该标签时,就会把该组件加载到那里
  selector: 'app-root',

  // 引入组件 html 模板
  templateUrl: './app.component.html',

  // 引入组件 css 文件(可引入多个)
  styleUrls: ['./app.component.scss'],

  // 用于向本组件提供服务,会与组件一同创建和销毁
  // 如果组件所在的模块中已经注入该服务,则可以省略
  providers:[ APIService ]
})

// 为模板提供数据和方法支持
export class AppComponent implements OnInit {

  // 构造函数,通常在这里创建服务实例
  constructor() {
    private api: APIService
  }
  
  // 生命周期函数
  ngOnInit(){ }

}

组件的使用

组件必须在模块中声明之后,且只能声明一次,才可以正常使用。

@NgModule({
  declarations: [ AppComponent ]
})

组件的生命周期

一个组件创建、更新和销毁实例的过程就叫做组件的生命周期。
组件的生命周期大体可以分为两种,一种是组件由创建到销毁实例的过程:

图片描述

另外一种是组件更新实例的过程:

图片描述

图中罗列的 ngOnChanges、ngOnInit 等等叫做钩子函数,这些函数是已经定义好的,允许开发人员在某个阶段对实例对象进行操作。

钩子函数的使用

例子:

// 导入生命周期接口
import { Component, OnInit, OnChanges, OnDestroy } from '@angular/core';

@Component({
  selector: 'talent-welcome',
  templateUrl: './welcome.component.html',
  styleUrls: ['./welcome.component.scss'],
})

// 实现生命周期接口
export class WelcomeComponent implements OnInit, OnChanges, OnDestroy {

  constructor() { }

  // ng + OnInit 使用钩子函数
  ngOnInit(): void {}
  
  // ng + OnChanges 使用钩子函数
  ngOnChanges(): void {}
  
  // ng + OnDestroy 使用钩子函数
  ngOnDestroy(): void {}

}

常用钩子函数

constructor()

constructor() 并非是钩子函数,但却是在所有钩子函数之前被调用,主要用于将服务注入到组件中,也可以执行简单的数据初始化。

例子:

constructor(
    private router: Router,
    private query: WelcomeService,
  ) { }

ngOnChanges()

当组件的输入属性发生变化,就会调用 ngOnChanges() 方法,该方法接受当前和上一属性值的 SimpleChanges 对象。
ngOnChanges() 方法发生的非常频繁,所以需要注意性能问题。

例子:

// 需要导入 SimpleChanges 对象
// import { SimpleChanges } from '@angular/core';

@Input() videoStop: boolean;

ngOnChanges(changes: SimpleChanges): void {
  console.log(changes.videoStop.currentValue);
  console.log(changes.videoStop.previousValue);
}

ngOnInit()

ngOnInit() 会在初始化组件的时候调用,发生在第一轮 ngOnChanges()
完成之后,且只调用一次。主要用处有两点:一是执行初始函数,二是获取初始数据。

例子:

personalName: string;
  
ngOnInit(): void {
  this.personalName = 'Tom';
  this.checkWeiChartLoginFn();
}

checkWeiChartLoginFn() {
  console.log('Welcome');
}

ngOnDestroy()

ngOnDestroy() 会在销毁组件之前调用,只调用一次,主要用于移除事件监听、清除定时器、退订 Observable 等。

例子:

ngOnDestroy(): void {
  this.subscription.unsubscribe();
  clearInterval(this.timer);
}

end

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消