这篇文章主要介绍了角的经典面试题有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。
<>强角经典问题及扩展阅读强>
<强> 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仅对角和打印稿项目进行静态代码分析。