最近被调到一个新的项目组,做web开发,是一个要上线的产品。MVC架构,对前端要求比较高,对于我这样一个三脚猫功夫的js小鸟来说确实是一个挑战。
废话少说,直插主题。项目需要用到seajs,遂学之…
一、seajs是什么
一个适用于 Web 浏览器端的模块加载器。只是实现JavaScript的模块化及按模块加载,与jquery不同。
二、特点
(1)一个模块一个文件
(2)使用define()定义模块
(3)使用use异步加载模块
经常使用的 API 只有
define
,exports
,require
,require.async
这四个。define
define(factory)
factory可以是对象、字符串、函数。详细讲解请链https://github.com/seajs/seajs/issues/242
这里我只介绍factory是函数的情况。
define(function(require, exports, module) {//require
、exports
和module
这三个参数是默认传入的,必须是这三个单词,不能更改。 // The module code goes here });
a.require
是一个方法,用来获取其他模块提供的接口。如:var TabPanel = require("./TabPanel");而TabPanel 可以看出是文件TabPanel.js的一个对象。可以通过这个对象获取该对象中共享的函数或者变量。b.exports是一个对象,用来向外提供模块接口。通过他可以把模块内的方法等共享出去。如:define(function(require, exports) { // snip... exports.foo = 'bar'; exports.doSomething = function() {}; });c.module
是一个对象,上面存储了与当前模块相关联的一些属性和方法。他有自己的属性和方法如:module.id,module.uri,module.parent等
路径问题:/*
* ./相对于当前目录
* ../相对于上一个目录
* /相对于根目录
*/