方便快捷的Javascript模块管理,这就是我们的目标。
声明:此框架与其他名称相近或同名的(包括easyjs.org)无任何关系。
最新版本:0.1.1
官方博客:http://blog.sina.com.cn/u/3868382222
官方微博:http://weibo.com/u/3868382222
1)引用
2)配置
3)书写
5)可扩展
6)开发历史
7)案例
8)未来
head标签:
\<script src="./libs/easyjs.0.0.1.js" id="root" data-config="./config.js" data-main="./app.js" data-file="./demo/easyjs.fn.js ./demo/easyjs.fna.js" \>\
属性:
src: 框架地址,目录只认libs
id: 只读
data-config: 配置文件地址
data-main: 主文件地址
data-file: 预先加载文件地址
代码:
修改前配置写法 define({ code });
修改后配置写法 easyjs.config({ code });
easyjs.config({
debug: true,
frame: {
global: "jquery", //20131209修改
touch: "mobile"
}
main: "app",
charset: "utf-8", //20131028增加
base: "http://www.aaa.com/easyjs/" //20131028增加
alias: {
jquery: "bbb/libs/jquery.1.9.1.js",
mobile: "bbb/libs/jquery.mobile.js",
app: "./app.js",
mobile_app: "./mobile/app.js",
b: "ccc/plugs/plugs.1.0.0.js",
d: "./plugs/plugs.js",
e: "aaaaaa/bbb/ccc",
g: {
global: "a.js", //20131209修改
touch: "b.js"
},
f: "./test.js",
h: "./test1.js"
},
paths: {
bbb: "http://a.b.com/comm/",
ccc: "http://c.b.com/comm/",
ddd: "http://d.b.com/i/"
},
preload: ["./demo/easyjs.dom.js", "./demo/easyjs.style.js"] //20131028增加});
解释:
debug: 是否处于调试
frame: 开发框架。 global:传统PC设备,touch:移动设备(Phone/Tablet)
main: 开发主文件
charset: 编码
base: 根目录
alias: 别名。 global:传统PC设备,touch:移动设备(Phone/Tablet)
paths: 路径
preload: 预先加载(在开发主文件加载前、开发框架加载后加载)
代码:
define({ code });
define(["a","b"], function(){ code });
define("c", ["a","b"], function(){ code });
define(function(require, exports, module) {
//require("") 方法是初次加载依赖项
require("a");
/*require("", callback) 方法只做已加载依赖项的获取接口使用,
如新加载依赖项请使用USE方法*/
require("a", function(a){
console.log(a);
});
var b = require("f");
module.use("http://a.b.com/comm/jquery.1.9.1.js", function(){
console.log(jQuery);
});
module.use("./plugs/plugs.js", function(){
console.log("plugs");
});
exports.aaa = "a";
return b; });
解释:
require: 引入指定名称的模块,如模块提供返回接口,就会返回结果。
exports: 返回值对象。
module: easyjs主体。
“移动设备” 提供的属性:
a) online 是否处于在线。
b) istouch 是否是移动设备。
c) ua 系统 navigator.userAgent 信息。
d) orientation 设备方向或不支持。
module.require(模块名,[回调函数]);
module.config(配置对象);
module.use(引用模块地址, 回调函数);
module.loadJs(文件地址, 回调函数);
module.loadCss(文件地址, 回调函数);
代码:
module.use("./plugs/plugs.js", function(){
console.log("plugs_use");
});
module.loadCss("./css/index.css", function(){
module.jq("#aaa").addClass("a").show();
});
为什么说我们是框架,因为我们是可扩展的,是要创造一个完整生态系统的。
已删除方法:
module.extend(原对象或扩展方法名, 函数或对象);
替代方法:
on 绑定自定义方法
module.on(扩展方法名, 函数或对象);
off 取消绑定
module.off(扩展方法名);
代码:
module.on("jq", jQuery);
module.jq(function(){
module.off("jq");
});
0.0.1-0.0.3 框架定型版。
0.0.4 试用版。
0.0.5 修复路径识别问题。
0.0.6 修复loadJs方法无法重复请求的问题并修改内部逻辑。
0.0.7 修复之前版本define嵌套use无法执行等问题并优化内部逻辑,增加预先加载。
0.0.8 修复之前只能加载两个依赖项等问题及优化内部逻辑。
0.0.9 优化内容逻辑,增加及替换部分接口,增加对移动设备的支持。
0.1.0 修复由于重复引用依赖项而产生的重复加载依赖项对应的文件。
0.1.1 修复部分占用内存写法。
酷六网专题 - 是真的吗
http://life.ku6.com/true/index.shtml
使用版本:0.0.6
酷六网专题 - 滔滔不绝
http://ent.ku6.com/ttbjindex/index.shtml
使用版本:0.0.6
未来 easyjs 将增加插件功能,提供大量的外挂插件。
编写开发规范,指导开发爱好者实现 easyjs 真正的生态系统。
easyjs 提供的插件不再是dom选择器等传统框架提供的功能,而是完整的、解决问题的、实现梦想的插件。
easyjs 等待您的加入。