SPA-by-AngularJS这个项目是根据angular-ui-router中的sample更改的,主要还是为了做个对比。原项目在这个sample的基础上添加了requirejs模块化编程,前端项目构建grunt。要使用firefox打开index.html,chrome打开会报XMLHttpRequest加载本地文件错误。

前端模块化编程

在我们之前的编程中,代码几乎都是放在script的文件夹中,使用的时候,要根据依赖关系,在页面中引入,这样就比较杂乱。引入前端模块化管理,它可以轻松管理各种JavaScript脚本的依赖关系,自动加载各个模块,使得网页结构清晰合理。这里使用了requireJS,想要深入了解requireJS模块化编程,可以参考这份requirejs前端模块化.pdf

模块化编程带来的弊端

我们通过requireJS可以将代码分割成若干模块,保持了代码的模块化和易维护性。但是在生产环境中,所有JavaScript文件分离,带来了一些性能上的问题。使用AngularJS创建单页应用时的具体方法可以参阅使用AngularJS创建单页应用的编程指引。关于如何整合requirejs和angularjs,也可以查看requirejs整合angularjs

实践中的例子

对那些想实际操作的开发者,这里有一个很好的angularjs requirejs boilerplate用于节点的完整angularjs requirejs样板源码。这个样板可以帮助你快速上手,避免从头开始的繁琐步骤。requireJS加angularJs的项目构架也是一个值得参考的实例。