最近想搞搞JS模块化, 读到了园子里的一篇好文:  http://www.cnblogs.com/lvdabao/p/js-modules-develop.html

看里面讲seajs不错, 于是想学一下,
到官网一看, 5分钟入门, 真是好感度倍增,  万万没想到人家那教程,  是写给玩过nodejs, requirejs之类的高人看的, 咱这智商,50分钟都不够啊.
好容易找资料弄出个最最简单的东西, 记录一下:
 
1) 下载seajs.    不知道各个版本都有什么区别, 总之下载最新的 sea.js 应该OK.
 
2) 引用和配置.  在公共或模块页面里引用, 配置一下, 下面是asp.net mvc的语法:
 
  <script src="~/viewsjs/sea.js"></script>
<script>
seajs.config({
base: "@Url.Content("~/ViewsJs/")",
alias: {
"jquery": "jquery/jquery/1.10.1/jquery.js"
}
});
</script>
放在页面里, 主要是为了方便确定base路径.  base和alias什么用途, 咱还没理解透, 也就不解析了.
 
3) 写测试模块.  既然是模块化, 先要做个模块吧:
ClientsSelectorUnit.js

 define('ClientsSelectorUnit', [], function (require, exports, module) {
var $el = null; function test(){}; exports.init = function (containerId) {
$el = $(containerId);
test();
alert("ClientsSelectorUnit.js loaded! " + containerId);
}; });

注意 $el , test() 的使用方式不会污染全局对象.

这个文件和我sea.js放一个地方了, 放哪都可以, 引用时注意一下路径.   这里暴露了个init方法.

 
4) 调用模块
 <script>
seajs.use("ClientsSelectorUnit", function (unit) {
unit.init("divClientsSelector");
});
</script>
 这是个简单的入门测试, 所以调用是写在页面里了, 估计写在js文件里也可以的.
主要是 use 方法的第一个参数指向要调用的模块的文件名, 而后面的 function 里的参数是做为模块的一个引用名, 在函数体里面可以方便的引用模块中通过 exports 暴露出的方法.
 
我们总算成功引用了一个js模块了.  在第3)步中, 定义模块的时候, 有三个参数: require , exports , module . 其中的exports 我们用到了, require应该是可以用来引用其它模块, 从而完成模块依赖管理的, 而module参数暂时没搞懂是干嘛的.  
 
到这里算是小入门了吧, 先这样了.  
 
 

最新文章

  1. jQuery如何在IE中更改网页标题
  2. sharepoint 增删改查
  3. centos&#39;的yum安装php的memcache扩展
  4. Selenium WebDriver屏幕截图(C#版)
  5. WinForm开发中针对TreeView控件改变当前选择节点的字体与颜色
  6. 数据交互 ajax代码整理
  7. hdoj 3072 Intelligence System【求scc&amp;&amp;缩点】【求连通所有scc的最小花费】
  8. MVC4 中Remote的使用
  9. SQL中 patindex函数的用法
  10. Delphi 封装Frame到Dll文件
  11. Unicode的解救方案 - Windows程序设计(SDK)002
  12. sqlserver系统表操作
  13. Canvas绘制一个大鱼喂小鱼的游戏
  14. 基于VUE的九宫格抽奖功能
  15. ListView添加图片文字项
  16. 记数据库数据文件损坏恢复ORA-00376+ORA-01110
  17. Linux记录-JMX监控Tomcat上传到falcon
  18. Python3学习笔记21-实例属性和类属性
  19. JavaScript学习(八)
  20. Android系统版本、Platform版本、SDK版本、gradle修改

热门文章

  1. ASP.NET动态网站制作(29)-- 正则
  2. WCF服务寄宿IIS与Windows服务
  3. python_selenium之第一个自动化脚本
  4. 制作dos启动u盘
  5. [Spring Data MongoDB]学习笔记--MongoTemplate插入修改操作
  6. cocos2d-x设计模式发掘之三:管理者模式
  7. Super Resolution
  8. QThread与多线程(比较清楚)
  9. Navicat for MySQL远程连接虚拟机
  10. Linux用户相关文件之组文件