真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Angular之constructor和ngOnInit差異有哪些-創(chuàng)新互聯(lián)

小編給大家分享一下Angular之constructor和ngOnInit差異有哪些,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

我們注重客戶提出的每個要求,我們充分考慮每一個細(xì)節(jié),我們積極的做好網(wǎng)站制作、成都網(wǎng)站設(shè)計服務(wù),我們努力開拓更好的視野,通過不懈的努力,創(chuàng)新互聯(lián)公司贏得了業(yè)內(nèi)的良好聲譽(yù),這一切,也不斷的激勵著我們更好的服務(wù)客戶。 主要業(yè)務(wù):網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)站設(shè)計,小程序定制開發(fā),網(wǎng)站開發(fā),技術(shù)開發(fā)實力,DIV+CSS,PHP及ASP,ASP.Net,SQL數(shù)據(jù)庫的技術(shù)開發(fā)工程師。

區(qū)別

constructor是ES6引入類的概念后新出現(xiàn)的東東,是類的自身屬性,并不屬于Angular的范疇,所以Angular沒有辦法控制constructor。constructor會在類生成實例時調(diào)用:

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

@Component({
  selector: 'hello-world',
  templateUrl: 'hello-world.html'
})

class HelloWorld {
  constructor() {
    console.log('constructor被調(diào)用,但和Angular無關(guān)');
  }
}

// 生成類實例,此時會調(diào)用constructor
new HelloWorld();

既然Angular無法控制constructor,那么ngOnInit的出現(xiàn)就不足為奇了,畢竟槍把子得握在自己手里才安全。

ngOnInit的作用根據(jù)官方的說法:

ngOnInit用于在Angular第一次顯示數(shù)據(jù)綁定和設(shè)置指令/組件的輸入屬性之后,初始化指令/組件。

ngOnInit屬于Angular生命周期的一部分,其在第一輪ngOnChanges完成之后調(diào)用,并且只調(diào)用一次:

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

@Component({
  selector: 'hello-world',
  templateUrl: 'hello-world.html'
})

class HelloWorld implements OnInit {
  constructor() {

  }

  ngOnInit() {
    console.log('ngOnInit被Angular調(diào)用');
  }
}

constructor適用場景

即使Angular定義了ngOnInit,constructor也有其用武之地,其主要作用是注入依賴,特別是在TypeScript開發(fā)Angular工程時,經(jīng)常會遇到類似下面的代碼:

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

@Component({
  selector: 'hello-world',
  templateUrl: 'hello-world.html'
})
class HelloWorld {
  constructor(private elementRef: ElementRef) {
    // 在類中就可以使用this.elementRef了
  }
}

constructor中注入的依賴,就可以作為類的屬性被使用了。

ngOnInit適用場景

ngOnInit純粹是通知開發(fā)者組件/指令已經(jīng)被初始化完成了,此時組件/指令上的屬性綁定操作以及輸入操作已經(jīng)完成,也就是說在ngOnInit函數(shù)中我們已經(jīng)能夠操作組件/指令中被傳入的數(shù)據(jù)了:

// hello-world.ts
import { Component, Input, OnInit } from '@angular/core';

@Component({
  selector: 'hello-world',
  template: `

Hello {{name}}!

` }) class HelloWorld implements OnInit {   @Input()   name: string;   constructor() {     // constructor中還不能獲取到組件/指令中被傳入的數(shù)據(jù)     console.log(this.name);   // undefined   }   ngOnInit() {     // ngOnInit中已經(jīng)能夠獲取到組件/指令中被傳入的數(shù)據(jù)     console.log(this.name);   // 傳入的數(shù)據(jù)   } }

所以我們可以在ngOnInit中做一些初始化操作。

看完了這篇文章,相信你對“Angular之constructor和ngOnInit差異有哪些”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!

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


文章名稱:Angular之constructor和ngOnInit差異有哪些-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://weahome.cn/article/gsdcd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部