角2和离子2:构造函数ionViewDidLoad和ngOnInit方法之间有什么区别?

前端之家收集整理的这篇文章主要介绍了角2和离子2:构造函数ionViewDidLoad和ngOnInit方法之间有什么区别?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
构造函数,ionViewDidLoad和ngOnInit方法之间有什么区别?
在每种情况下都采取什么行动?
关于ion2的构造函数:简单来说,我们使用它来创建我们的插件,服务等的实例,例如:你有一个页面(视图),你想显示所有学生的列表,你有一个json文件包含所有的学生(这个文件是你的数据文件)你要做的是在这个服务中创建一个服务,你将创建一个方法并点击http.get来获取json数据,所以这里你需要什么? http只是这样做:
import {Http} from '@angular/http';
@Injectable()
export class StudentService{
    constructor(public http: Http){}
    getAllStudents(): Observable<Students[]>{
        return this.http.get('assets/students.json')
        .map(res => res.json().data)     
        }
    }

如果我们想要使用这种服务方法,我们将再次看到我们的视图/页面,并再次注意构造函数

import {StudentService} from './student.service';
import { SocialSharing } from '@ionic-native/social-sharing';
export class HomePage implements OnInit {

  constructor(public _studentService: StudentService,public socialSharing: SocialSharing) {
   }

再次注意到这里的构造函数,我们在构造函数中创建了一个StudentService的实例,还有一件事情,我们使用socialSharing插件,以便我们在构造函数中创建实例.

OnInit:这在离子2中真的很神奇,或者我们可以在AngularJs2中说.同样的上面的例子我们可以看到ngOnInit是什么.
所以你准备好了服务方法,现在在你的视图/页面,你希望学生列表数据可以在你的视图出现之后,这应该是第一个操作自动发生加载,因为视图加载学生列表应该是可见的.所以这个类实现了OnInit,你定义了ngOnInit.例:

export class HomePage implements OnInit {
...
....
constructor(....){}

ngOnInit(){
    this._studentService.getAllStudents().subscribe(
     (students: Students[]) => this.students = students,)

我希望这个解释清楚你对这两个问题的怀疑.谢谢

猜你在找的Angularjs相关文章