在大型的 Angularjs 项目中,如何组织您的代码

Posted 小马学编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在大型的 Angularjs 项目中,如何组织您的代码相关的知识,希望对你有一定的参考价值。

分享一下在大型的 Angularjs 项目中组织代码几种常见的方式。随着项目代码量巨增,如何组织 angularjs 项目的代码就变得事关重要了。


常规的 javascript 组织代码方式

1. 继承

2. 通过混入(Mixins)方式来实现组合

3. 使用 javascript 对象来实现组合


在 angularjs 中特有的方式

4. 使用 Service 来实现组合

5. 使用 helper 控制器来实现组合



1. 代码组织方式:继承

定义

可以共享父级的一些基本特性,例如列表的排序和分页

问题

容易形成多层继承,增加了代码的复杂度

无法现实不同分支间的代码共享。


在大型的 Angularjs 项目中,如何组织您的代码


创建 angularjs 模块 myApp 和一个控制器 EmployeeListCtrl


在大型的 Angularjs 项目中,如何组织您的代码

定义 Employee 类,构造函数接受 name 和 dept 两个参数

在大型的 Angularjs 项目中,如何组织您的代码

定义 EmployeeListCtrl 控制器

在大型的 Angularjs 项目中,如何组织您的代码

定义 BaseListCtrl 父控制器

在大型的 Angularjs 项目中,如何组织您的代码

在大型的 Angularjs 项目中,如何组织您的代码

在大型的 Angularjs 项目中,如何组织您的代码


2. 代码组织方式:混入(Mixins)

将一个对象的方法添加(混入)到另一个对象中以使用。

可以使用 angular.extend 来将一个对象的方法复制到另一个对象上


应用场景

如果想要直接将共享方法添加到控制器或作用域上时

如果想要复写控制器中的特定的方法时


问题

在大文件中,代码的可追溯性不好,无法判断代码出处。

耦合度强,一旦方法被覆盖,无法访问到原有方法。

在大型的 Angularjs 项目中,如何组织您的代码

在大型的 Angularjs 项目中,如何组织您的代码

在大型的 Angularjs 项目中,如何组织您的代码




3. 代码组织方式:Javascript 对象

使用 javascript 对象封装函数的方式来实现组合


应用场景

1. 使用于较为简单对象间的代码引用

2.如果需要考虑性能,这种方式性能要优于其他方式


问题

无法发挥 angular 依赖注入的威力

在大型的 Angularjs 项目中,如何组织您的代码

在大型的 Angularjs 项目中,如何组织您的代码


4 代码组织方式:Angular Services 实现组合


应用场景

不包括保存控制器状态的所有有共性的方法(例如 打日志,解析数据)

需要在控制间分享的单例


好处

实现依赖注入,解耦度高,易测试


在大型的 Angularjs 项目中,如何组织您的代码


5 代码组织方式:Helper 控制器实现组合


类似于普通对象方式,不同的是这个对象是由 $controller 实例化的对象,然后依赖注入


应用场景

当需要访问由 angular 所提供的对象。例如 services constants filters

与上面说到 service 不同,我们可以在同一个控制器实例化多个这样的对象,还

可以保持控制器的状态


优点

实现依赖注入,解耦度,对 service 是一种补偿,可以应用到 service 无法满足的场景

在大型的 Angularjs 项目中,如何组织您的代码


以上是关于在大型的 Angularjs 项目中,如何组织您的代码的主要内容,如果未能解决你的问题,请参考以下文章

如何优化在大型 AngularJS 项目

如何在 Visual Studio 中组织大型项目(>300 个类)的 F# 源?

在 PHP 项目中,存在哪些存储、访问和组织辅助对象的模式? [关闭]

如何组织大型 R 程序?

angularJs项目实战!01:模块划分和目录组织

模块与命名空间:组织大型打字稿项目的正确方法是啥?