# 小结 本结我们将整个应用向着正式生产的项目又推进了一步。 我们学习了如何使用setTimeout来延时异步的做一些操作,并接触了测试它们的方法。在此过程中,我们还对测试中的组件的生命周期,何时放弃自动对V层渲染进行讨论。 生命周期有任何框架中,都是个重要的概念。什么时候实例化组件、销毁组件,组件实例化后先执行什么、后执行什么、在什么时候执行什么,都是生命周期中的内容。 我们学习了如何的手动创建一个组件及其单元测试文件,在创建过程中我们对组件、单元测试的代码作用有了更深入的认识。 我们还学到了决定了一个类是组件、模块还是管道的因素是:使用了`@Component`注解还是`@Module`或是`@Pipe`注解,而**不**类的名字或其所在的位置。据此我们总结出:Angular是使用了**注解**的模式来定义相应的功能单元的。 我们还巩固了如何为测试添加全局自定义CSS文件的知识,这与向生产中添加全局CSS文件的知识是通用的。 另外,我们对路由进行重新的规划,引入了菜单,这使得当前的项目更像一个真正的系统,而非练手的demo。 最后我们还对为什么应该办理芯片式的银行卡进行了说明。 实践是最好的老师,由实践中来,到实践中去。掌握上述技能的最有效的方法便是:重复做。 还等什么,下载上一章中最后一节的代码后,靠自己的能力实现一次本节的功能来做个自我测验吧。