AngularJS是一个JavaScript框架,是一个以JavaScript编写的库。它可通过<script>标签添加到HTML页面,通过指令扩展HTML,且通过表达式绑定数据到HTML。作为目前流行的框架之一,Angular一直是企业招聘考察的重点,接下来的郑州Web前端就业就给大家分享经典Angular面试题。
1、解释Angular 2应用程序的生命周期hooks是什么?
Angular 2组件/指令具有生命周期事件,是由@angular/core管理的。@angular/core会创建组件,渲染它,创建并呈现它的后代。当@angular/core的数据绑定属性更改时,处理就会更改,在从DOM中删除其模板之前,就会销毁掉它。Angular提供了一组生命周期hooks(特殊事件),可以被分接到生命周期中,并在需要时执行操作。构造函数会在所有生命周期事件之前执行。每个接口都有一个前缀为ng的hook方法。例如,ngOnint界面的OnInit方法,这个方法必须在组件中实现。
2、事件发射器如何在Angular 2中工作的?
Angular 2不具有双向digest cycle,这是与Angular 1不同的。在Angular2中,组件中发生的任何改变总是从当前组件传播到其所有子组件中。如果一个子组件的更改需要反映到其父组件的层次结构中,我们可以通过使用事件发射器api来发出事件。简而言之,EventEmitter是在@ angular/core模块中定义的类,由组件和指令使用,用来发出自定义事件。
3、如何优化Angular 2应用程序来获得更好的性能?
优化取决于应用程序的类型和大小以及许多其他因素。一般来说,在优化Angular 2应用程序时要考虑以下几点:
1)考虑AOT编译。
2)确保应用程序已经经过了捆绑,uglify和tree shaking。
3)确保应用程序不存在不必要的import语句。
4)确保应用中已经移除了不使用的第三方库。
5)所有dependencies 和dev-dependencies都是明确分离的。
6)如果应用程序较大时,我会考虑延迟加载而不是完全捆绑的应用程序。
4、什么是Shadow DOM?它如何帮助Angular 2更好地执行?
Shadow DOM是HTML规范的一部分,它允许开发人员封装自己的HTML标记,CSS样式和JavaScript。Shadow DOM以及其它一些技术,使开发人员能够像<audio>标签一样构建自己的一级标签,Web组件和API。总的来说,这些新的标签和API被称为Web组件。Shadow DOM通过提供了更好的关注分离,通过其它的HTML DOM元素实现了更少的样式与脚本的冲突。
因为shadow DOM本质上是静态的,同时也是开发人员无法访问的,所以它是一个很好的候选对象。因为它缓存的DOM将在浏览器中呈现得更快,并提供更好的性能。此外,还可以相对很好地管理shadow DOM,同时检测Angular 2应用的改变,并且可以有效地管理视图的重新绘制。
5、service怎么使用?
AngularJS中你可以创建自己的服务,或使用内建服务。
使用Module的provider方法
使用Module的factory方法
使用Module的service方法
三种方法的比较
需要在config中进行全局配置的话,只能选择provider方法,factory和service是使用比较频繁的创建服务的方法。
它们之间的唯一区别是:service方法用于注入的结果通常是new出来的对象,factory方法注入的结果通常是一系列的functions;
provider是创建服务最为复杂的方法,除非你需要创建一个可以复用的代码段并且需要进行全局配置,才需要使用provider创建;
所有具有特定性目的的对象都是通过factory方法去创建。
以上只是企业经常提问的Angular面试题中的部分内容,如果你想了解更多,可以关注“千锋郑州校区”微信公众号,定期发布技术热点和就业行情分析。你也可以来千锋郑州Web前端培训班免费试听学习,跟着大牛讲师学习高端技能,做企业需要的人才!