1.第一步 下载sea.js
2.在网页中引入sea.js
3.引入jquery需要配置,因为jquery是amd规范
seajs只能加载cmd规范中的模块
通过请求而得的是一个模块,是一个对象。而不是你直接暴露的方法或者属性
====================================
备注:一个js文件就是一个模块,一个模块就相当于Java中的类
除了exports还可以直接返回对象
1.seajs是什么?是一种遵循cmd规范的模块化解决方案
2.seajs要解决的问题是什么?
1.js文件的依赖顺序问题
2.代码紊乱问题
3.seajs的优点是什么?
1.APi小 易学
2.
4.seaJs的知识架构
1.模块定义规范 define(a,b,c);
a是当前模块ID 是一个字符串 可选
非特殊不要传值 一般默认是文件的绝对路径名
b是当前模块所依赖的模块 是一个数组 可选
一般都是通过require加载依赖
c是工厂函数/json/string中一个 是一个 必选
工厂函数factory解析
工厂函数是模块的主体和重点。在只传递一个参数给define时(推荐写法),这个参数就是工厂函数,此时工厂函数的三个参数分别是:
require——模块加载函数,用于记载依赖模块。
exports——接口点,将数据或方法定义在其上则将其暴露给外部调用。
module——模块的元数据。
这三个参数可以根据需要选择是否需要显示指定。
下面说一下module。module是一个对象,存储了模块的元信息,具体如下:
module.id——模块的ID。
module.dependencies——一个数组,存储了此模块依赖的所有模块的ID列表。
module.exports——与exports指向同一个对象。
2.require
1.支持绝对路径 var data=require("http://192.168.253.1:8020/seaJs/js/data");
2.支持相对路径 ./data
注意上面在载入模块时都不用传递后缀名“.js”,SeaJS会自动添加“.js”。但是下面三种情况下不会添加
1. 载入css时,如
require("./module1-style.css");
2. 路径中含有”?”时,如
require(<a href="http://example/js/a.json?cb=func">http://example/js/a.json?cb=func</a>);
3.路径以”#”结尾时,如
require("http://example/js/a.json#");
3. require.async
require.async('/path/to/module/file',function(m){
//按需加载
});
4.seajs全局配置
seajs.config({
base:'path/to/jslib/',
alias:{
'app':'path/to/app/'
},
charset:'utf-8',
timeout: 20000,
debug:false
});
其中base表示基址寻址时的基址路径。例如base设置为”http://example.com/js/3-party/”,则
var $ = require('jquery');
会载入”http://example.com/js/3-party/jquery.js”。
5.seaJs案例
6.SeaJS项目的打包部署 spm
2.在网页中引入sea.js
3.引入jquery需要配置,因为jquery是amd规范
seajs只能加载cmd规范中的模块
通过请求而得的是一个模块,是一个对象。而不是你直接暴露的方法或者属性
====================================
备注:一个js文件就是一个模块,一个模块就相当于Java中的类
除了exports还可以直接返回对象
1.seajs是什么?是一种遵循cmd规范的模块化解决方案
2.seajs要解决的问题是什么?
1.js文件的依赖顺序问题
2.代码紊乱问题
3.seajs的优点是什么?
1.APi小 易学
2.
4.seaJs的知识架构
1.模块定义规范 define(a,b,c);
a是当前模块ID 是一个字符串 可选
非特殊不要传值 一般默认是文件的绝对路径名
b是当前模块所依赖的模块 是一个数组 可选
一般都是通过require加载依赖
c是工厂函数/json/string中一个 是一个 必选
工厂函数factory解析
工厂函数是模块的主体和重点。在只传递一个参数给define时(推荐写法),这个参数就是工厂函数,此时工厂函数的三个参数分别是:
require——模块加载函数,用于记载依赖模块。
exports——接口点,将数据或方法定义在其上则将其暴露给外部调用。
module——模块的元数据。
这三个参数可以根据需要选择是否需要显示指定。
下面说一下module。module是一个对象,存储了模块的元信息,具体如下:
module.id——模块的ID。
module.dependencies——一个数组,存储了此模块依赖的所有模块的ID列表。
module.exports——与exports指向同一个对象。
2.require
1.支持绝对路径 var data=require("http://192.168.253.1:8020/seaJs/js/data");
2.支持相对路径 ./data
注意上面在载入模块时都不用传递后缀名“.js”,SeaJS会自动添加“.js”。但是下面三种情况下不会添加
1. 载入css时,如
require("./module1-style.css");
2. 路径中含有”?”时,如
require(<a href="http://example/js/a.json?cb=func">http://example/js/a.json?cb=func</a>);
3.路径以”#”结尾时,如
require("http://example/js/a.json#");
3. require.async
require.async('/path/to/module/file',function(m){
//按需加载
});
4.seajs全局配置
seajs.config({
base:'path/to/jslib/',
alias:{
'app':'path/to/app/'
},
charset:'utf-8',
timeout: 20000,
debug:false
});
其中base表示基址寻址时的基址路径。例如base设置为”http://example.com/js/3-party/”,则
var $ = require('jquery');
会载入”http://example.com/js/3-party/jquery.js”。
5.seaJs案例
6.SeaJS项目的打包部署 spm