欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

ngOnInit和constructor怎么在Angular中使用-創(chuàng)新互聯(lián)

ngOnInit和constructor怎么在Angular 中使用?相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

在黔西南州等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)整合營銷推廣,外貿(mào)網(wǎng)站制作,黔西南州網(wǎng)站建設(shè)費(fèi)用合理。

1. constructor

constructor應(yīng)該是ES6中明確使用constructor來表示構(gòu)造函數(shù)的,構(gòu)造函數(shù)使用在class中,用來做初始化操作。當(dāng)包含constructor的類被實(shí)例化時(shí),構(gòu)造函數(shù)將被調(diào)用。

來看例子:

class AppComponent {
  public name: string;
  constructor(name) {
    console.log('Constructor initialization');
    this.name = name;
  }
}

let appCmp = new AppComponent('AppCmp');  // 這時(shí)候構(gòu)造函數(shù)將被調(diào)用。
console.log(appCmp.name);

轉(zhuǎn)成ES5代碼如下:

var AppComponent = (function () {
  function AppComponent(name) {
    console.log('Constructor initialization');
    this.name = name;
  }
  return AppComponent;  // 這里直接返回一個(gè)實(shí)例
}());
var appCmp = new AppComponent('AppCmp');
console.log(appCmp.name);

2. ngOnInit

ngOnInitAngularOnInit鉤子的實(shí)現(xiàn)。用來初始化組件。

Angular中生命周期鉤子的調(diào)用順序如下:

  1. ngOnChanges -- 當(dāng)被綁定的輸入屬性的值發(fā)生變化時(shí)調(diào)用,首次調(diào)用一定會發(fā)生在ngOnInit()之前。

  2. ngOnInit() -- 在Angular第一次顯示數(shù)據(jù)綁定和設(shè)置指令/組件的輸入屬性之后,初始化指令/組件。在第一輪ngOnChanges()完成之后調(diào)用,只調(diào)用一次。

  3. ngDoCheck -- 自定義的方法,用于檢測和處理值的改變。

  4. ngAfterContentInit -- 在組件內(nèi)容初始化之后調(diào)用,只適用于組件

  5. ngAfterContentChecked -- 組件每次檢查內(nèi)容時(shí)調(diào)用,只適用于組件

  6. ngAfterViewInit -- 組件相應(yīng)的視圖初始化之后調(diào)用,只適用于組件

  7. ngAfterViewChecked -- 組件每次檢查視圖時(shí)調(diào)用,只適用于組件

  8. ngOnDestroy -- 當(dāng)Angular每次銷毀指令/組件之前調(diào)用并清掃。在這兒反訂閱可觀察對象和分離事件處理器,以防內(nèi)存泄漏。

在Angular銷毀指令/組件之前調(diào)用。

了解了這些之后我們來看一個(gè)例子:

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

@Component({
 selector: 'my-app',
 template: `
  <h2>Welcome to Angular World</h2>
 `,
})
export class AppComponent implements OnInit {

 constructor() {
  console.log('Constructor initialization');
 }

 ngOnInit() {
  console.log('ngOnInit hook has been called');
 }
}

這里輸出的是:

Constructor initialization
ngOnInit hook has been called

可以看出,constructor的執(zhí)行是在先的。

那么既然ngOnchanges是輸入屬性值變化的時(shí)候調(diào)用,并且ngOnInit是在ngOnchanges執(zhí)行完之后才調(diào)用,而constructor是在組件就實(shí)例化的時(shí)候就已經(jīng)調(diào)用了,這也就是說,在constructor中我們是取不到輸入屬性的值的。
所以還是看例子:

// parent.component.ts

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

@Component({
 selector: 'exe-parent',
 template: `
  <h2>Welcome to Angular World</h2>
  <p>Hello {{name}}</p>
  <exe-child [pname]="name"></exe-child>  <!-- 綁定到子組件的屬性 -->
 `,
})
export class ParentComponent {
 name: string;

 constructor() {
  this.name = 'God eyes';
 }
}
// child.component.ts

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

@Component({
  selector: 'exe-child',
  template: `
   <p>父組件的名稱:{{pname}} </p>
  `
})
export class ChildComponent implements OnInit {
  @Input()
  pname: string; // 父組件的輸入屬性

  constructor() {
    console.log('ChildComponent constructor', this.pname); // this.name=undefined
  }

  ngOnInit() {
    console.log('ChildComponent ngOnInit', this.pname); // this.name=God eyes
  }
}

一目了然。

3. 應(yīng)用場景

看完的上面的部分可以發(fā)現(xiàn),在constructor中不適合進(jìn)行任何與組件通信類似的復(fù)雜操作,一般在constructor中值進(jìn)行一些簡單的初始化工作:依賴注入,變量初始化等。

那么用到組件間通信的方法我們可以放在ngOnInit中去執(zhí)行,比如異步請求等:

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

@Component({
 selector: 'my-app',
 template: `
  <h2>Welcome to Angular World</h2>
  <p>Hello {{name}}</p>
 `,
})
export class AppComponent implements OnInt {
 name: string = '';

 constructor(public elementRef: ElementRef) { // 使用構(gòu)造注入的方式注入依賴對象
  this.name = 'WXY';          // 執(zhí)行初始化操作
 }

 ngOnInit() {
  this.gotId = this.activatedRoute.params.subscribe(params => this.articleId = params['id']);
 }
}

看完上述內(nèi)容,你們掌握ngOnInit和constructor怎么在Angular 中使用的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站aaarwkj.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

新聞標(biāo)題:ngOnInit和constructor怎么在Angular中使用-創(chuàng)新互聯(lián)
URL地址:http://aaarwkj.com/article0/jcioo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)網(wǎng)站收錄、自適應(yīng)網(wǎng)站、網(wǎng)站設(shè)計(jì)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
日本在线精品在线观看| 欧美日韩一区二区三区激情| 日韩中文字幕综合不卡| 91午夜精品在线观看| 中文字幕丰满人妻不满中出片| 思思久久96热在精品国产| 精品传媒国产在线观看| 日韩天堂视频在线播放| 日韩视频看看色网站| 真实国产熟女一区二区三区| 午夜高清影院免费观看| 伊人99热这里只有精品| 久久青草精品欧美日韩精品| 国产日韩精品专区一区| 国产在线视频不卡一区| 日韩无遮挡免费在线观看| 日韩黄色一级片免费看| 亚洲国产自拍精品视频| 色噜噜噜av天堂九区| 精品人妻av中文字幕| 人妻熟妇一区二区三区成人| 久久人妻精品一区二区三区| 中文一级伦理一区二区| 中文字幕人妻丝袜乱一区二区| 二区三区成人在线观看| 亚洲码欧美码一区二区三区| 国产三级三级三级精品8ⅰ区| 美女网站色在线免费观看午夜精品 | 麻豆视频国产一区二区| 亚洲精品尤物福利视频| 亚洲欧美高清一区二区| 亚洲日本国产精品第一页| 日本午夜节目在线观看| 国内午夜福利精品视频| 99精品热这里只有精品| 日本一区二区三区免费看视频| 和富婆啪啪一区二区免费看 | 禁止18岁以下观看的视频| 久久这里精品中文字幕| 精品国产熟女成人av| 国语对白视频在线观看|