角的经典面试题有哪些

  介绍

这篇文章主要介绍了角的经典面试题有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

<>强角经典问题及扩展阅读

<强> 1。2,请解释角应用程序的生命周期钩子是什么?

角2组件/指令具有生命周期事件,是由@angular/核心管理的.@angular/核心会创建组件,渲染它,创建并呈现它的后代。当@angular/核心的数据绑定属性更改时,处理就会更改,在从DOM中删除其模板之前,就会销毁掉它.Angular提供了一组生命周期钩子(特殊事件),可以被分接到生命周期中,并在需要时执行操作。构造函数会在所有生命周期事件之前执行。每个接口都有一个前缀为ng的钩方法,例如,ngOnint界面的OnInit方法,这个方法必须在组件中实现。

一部分事件适用于组件/指令,而少数事件只适用于组件。

<李>

ngOnChanges:当角设置其接收当前和上一个对象值的数据绑定属性时响应。

<李>

ngOnInit:在第一个ngOnChange触发器之后,初始化组件/指令。这是最常用的方法,用于从后端服务检索模板的数据。

<李>

ngDoCheck:检测并在角上下文发生变化时执行。每次更改检测运行时,会被调用。

<李>

ngOnDestroy:在角销毁指令/组件之前清除。取消订阅可观察的对象并脱离事件处理程序,以避免内存泄漏。

组件特定钩:

<李>

ngAfterContentInit:组件内容已初始化完成

<李>

ngAfterContentChecked:在角检查投影到其视图中的绑定的外部内容之后。

<李>

ngAfterViewInit:角创建组件的视图后。

<李>

ngAfterViewChecked:在角检查组件视图的绑定之后。

<强> 2。,使用角2,和使用角1相比,有什么优势?

<李>

角2是一个平台,不仅是一种语言

<李>

更好的速度和性能

<李>

更简单的依赖注入

<李>

模块化、跨平台

<李>

具备ES6和打印稿的好处。

<李>

灵活的路,由具备延迟加载功能

<李>

更容易学习

<强> 3。,角2中的路由工作原理是什么?

路由是能够让用户在视图/组件之间导航的机制.Angular 2简化了路由,并提供了在模块级(延迟加载)下配置和定义的灵活性。

角应用程序具有路由器服务的单个实例,并且每当URL改变时,相应的路由就与路由配置数组进行匹配。在成功匹配时,它会应用重定向,此时路由器会构建ActivatedRoute对象的树,同时包含路由器的当前状态。在重定向之前,路由器将通过运行保护(CanActivate)来检查是否允许新的状态.Route卫队只是路由器运行来检查路由授权的接口方法。保护运行后,它将解析路由数据并通过将所需的组件实例化到& lt; router-outlet>& lt;/router-outlet>中来激活路由器状态。

<强>扩展

<李> https://www.codeproject.com/Articles/1164813/Angular-Routing

<李>

https://vsavkin.com/angular-2-router-d9e30599f9ea .kt4z1v957

<强> 4。,什么是事件发射器?它是如何在角2中工作的?

角2不具有双向消化周期,这是与角1不同的。在Angular2中,组件中发生的任何改变总是从当前组件传播到其所有子组件中。如果一个子组件的更改需要反映到其父组件的层次结构中,我们可以通过使用事件发射器api来发出事件。

简而言之,EventEmitter是在@角/核心模块中定义的类,由组件和指令使用,用来发出自定义事件。

@output (), somethingChanged =, new  EventEmitter ();

我们使用somethingChanged。发出(值)方法来发出事件。这通常用在setter中,当类中的值被更改完成时。

可以通过模块的任何一个组件,使用订阅方法来实现事件发射的订阅。

myObj.somethingChanged.subscribe (val),=祝辞,this.myLocalMethod (val));

<强>扩展

<李> http://stackoverflow.com/questions/36076700/what-is-the-proper-use-of-an-eventemitter

<李> https://angular.io/docs/ts/latest/api/core/index/EventEmitter-class.HTML

<强> 5。2,如何在角应用程序中使用codelyzer ?

所有企业应用程序都会遵循一组编码惯例和准则,以更好的方式维护代码.Codelyzer是一个开源工具,用于运行和检查是否遵循了预定义的编码准则.Codelyzer仅对角和打印稿项目进行静态代码分析。

角的经典面试题有哪些