angularJs中service、factory、controller之间的区别及适用场景?

JavaScript08

angularJs中service、factory、controller之间的区别及适用场景?,第1张

controller专注于业务场景,即为特定的场景服务,所以不要重用controller,推荐通过小范围划分controller,使用父子作用域来满足业务场景。

factory提供一些公共的方法函数,推荐抽象,重用factory。

service类似factory,会被实例化,可以保存数据,作为controller之间的通讯工具,比好好用。

我是这样理解的:

模块化思想只是封装好的模块对外提供接口。使用时require进来。require进来后,调用各个接口。感觉AMD规范和CMD规范只是加载模块的时机不同,语法不同而已。至于将模块引进来后模块做了什么,那就是模块本身的内容了。

个人感觉可以认为vue.js是支持cmd规范的,只不过官方的vue.js 在CMD规范下使用require引进它之后,它还是在window变量下添加了全局变量Vue,严格说来是偏离了cmd规范的初衷的。

可以仔细看下vue.js源代码的第7第8第9行:

typeof exports === 'object' &&typeof module !== 'undefined' ? module.exports = factory() :

typeof define === 'function' &&define.amd ? define(factory) :

(global.Vue = factory())

可以看到如果把上文的define.amd判断改成define.cmd,那么此vue就是完美支持cmd规范了。楼主不妨自行修改下试试。