sea.js的模块化开发起步

为什么使用sea.js?

Sea.js 追求简单、自然的代码书写和组织方式,具有以下核心特性:

  • 简单友好的模块定义规范:Sea.js 遵循 CMD 规范,可以像 Node.js 一般书写模块代码。
  • 自然直观的代码组织方式:依赖的自动加载、配置的简洁清晰,可以让我们更多地享受编码的乐趣。

Sea.js 还提供常用插件,非常有助于开发调试和性能优化,并具有丰富的可扩展接口。

兼容性

Sea.js 具备完善的测试用例,兼容所有主流浏览器:

Chrome 3+         ✔
Firefox 2+        ✔
Safari 3.2+       ✔
Opera 10+         ✔
IE 5.5+           ✔

Sea.js 可运行在 Mobile 端,包括 Hybrid 模式的 App 上。理论上,Sea.js 可以运行在任何浏览器引擎上。

参考文档:http://seajs.org/docs/



下面我用一个简单示例来开启sea.js的模块化开发之旅:

目录结构:



hello.html文档代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试sea.js的API</title>
    <style>
        #container{
            width:200px;
            height: 200px;
            margin: 0 auto;
            border: 1px solid #669991;
        }
        .init{
            background-color: #ff6600;
        }
    </style>
</head>
<body>
<div id="container"></div>
<script src="../sea-modules/seajs/2.2.0/sea.js"></script>
<script>
    // seajs 的简单配置
    seajs.config({
        // Sea.js 的基础路径
        base:"../sea-modules/",
        // 设置别名,方便调用
        alias:{
            "jquery":"jquery/jquery/1.10.1/jquery.js"
        }
    });
    //for 开发阶段
    if(location.href.indexOf("?dev")>0){
        //加载一个main.js模块
        seajs.use("../static/hello/src/main");
    }
    //for上线阶段
    else{
        //加载一个main.js模块
        seajs.use("examples/hello/1.0.0/main");
    }
</script>
</body>
</html>
main.js的代码:

//定义一个模块
define(function(require){
    //获取start.js的接口
    var Start=require('./start');
    //生成Start的实例
    var s=new Start('#container');
    //调用Start的方法
    s.render();
});
start.js的代码:

define(function(require,exports,module){
    //获取jQuery的接口
    var $=require('jquery');

    //定义名为Start的构造函数对象
    function Start(container){
        this.container=$(container);
    }
    //对外提供接口
    module.exports=Start;
    //定义Start对象的原型方法
    Start.prototype.render=function(){
        this._init();
        this.container.css('border','5px solid #f00');
    };
    Start.prototype._init=function(){
        this.container.addClass('init');
        return this;
    }
});
示例效果如下:







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值