最近想搞搞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参数暂时没搞懂是干嘛的.  
 
到这里算是小入门了吧, 先这样了.  
 
 

seajs 入门的更多相关文章

  1. SeaJS入门教程系列之使用SeaJS(二)

    SeaJS入门教程系列之使用SeaJS(二) 作者: 字体:[增加 减小] 类型:转载 时间:2014-03-03我要评论 这篇文章主要介绍了SeaJS入门教程系列之使用SeaJS,着重介绍了SeaJ ...

  2. SeaJS入门篇一 怎么使用query

    研究了2个多小时,终于搞定引入jq 1.写个html页面 <h1>ddddddddd</h1> <script src='/Scripts/dist/sea.js'> ...

  3. SeaJS入门教程系列之SeaJS介绍(一)

    前言SeaJS是一个遵循CommonJS规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制.与jQuery等JavaScript框架不同,SeaJS不会扩展封装 ...

  4. SeaJS入门教程系列之完整示例(三)

    一个完整的例子上文说了那么多,知识点比较分散,所以最后我打算用一个完整的SeaJS例子把这些知识点串起来,方便朋友们归纳回顾.这个例子包含如下文件: 1.index.html——主页面.2.sea.j ...

  5. SeaJS入门

    Sea.js是一种模块加载工具 官网:http://seajs.org/docs/ 使用步骤: 1.下载sea.js 2.引入sea.js 3.加入配置代码 // seajs 的简单配置 seajs. ...

  6. seajs入门使用

    使用 Sea.js 进行模块化开发还能够带来非常多优点: 模块的版本号管理. 通过别名等配置,配合构建工具,能够比較轻松地实现模块的版本号管理. 提高可维护性.模块化能够让每一个文件的职责单一,很有利 ...

  7. 模块化开发(二)--- seaJs入门学习

    SeaJS是一个基于CMD模块定义规范实现一个模块系统加载器   [CMD规范](https://github.com/cmdjs/specification/blob/master/draft/mo ...

  8. grunt和seajs入门之--提取依赖、合并、压缩js文件

    一.安装grunt: npm install -g grunt-cli //安装 npm install grunt –save-dev //安装Grunt最新版本到项目目录中,并将其添加到devDe ...

  9. seaJs模块化开发简单入门

    随着前端技术的日益成熟,功能越来越丰富强大,规范也越来越健全,在这样的背景环境下很快便有了CommonJs.AMD.CMD等一系列规范,使前端发开趋向模块化.规范化.CMD模块化的代表之一就是国内开发 ...

随机推荐

  1. scikit-learn:3.4. Model persistence

    參考:http://scikit-learn.org/stable/modules/model_persistence.html 训练了模型之后,我们希望能够保存下来,遇到新样本时直接使用已经训练好的 ...

  2. (转)Unity3d游戏开场CG动画播放方式

    1.在一个plane上播放 1 2 3 4 5 6 7 8 9 10 11 12 using UnityEngine; using System.Collections; public class M ...

  3. Android-ViewPagerIndicator框架使用——IconPageIndicator

    前言:IconPageIndicator是将自定义的图片作为指示图标的,这里的图片使用xml实现的. 1.自己定义图片: <?xml version="1.0" encodi ...

  4. CodeIgniter框架——表单辅助函数总结

    首先第一步就是载入辅助函数: $this->load->helper('form'); 函数解析: 1.form_open() 创建一个开始form标签,相对于你的配置文档中的基础URL. ...

  5. jquery,日常 记录知识 点 (选择器的引用类型)

    1.标签引用$("p").$("input")例子 $("p").append( $("input").map(func ...

  6. 不恰当使用线程池处理 MQ 消息引起的故障

    现状 业务部门反应网站访问特别慢,负责运维监控的同事说MQ消息队列积压了,中间件的说应用服务器内存占用很高,GC 一直回收不了内存,GC 线程占了近 100% 的 CPU,其他的基本上都在等待,数据库 ...

  7. Spring 缓存注解@Cacheable 在缓存时候 ,出现了第一次进入调用 方法 ,第二次不调用的异常

    代码: @Override @Cacheable(value = CACHE_NAME, key = "'CartItemkey_'+#uId") public List<S ...

  8. nginx1.4.7+uwsgi+django1.9.2+gridfs 在ubuntu14.0.4上部署

    本文基于root用户安装配置,实现django项目名为trcode sudo apt-get updatesudo apt-get install python-pipsudo apt-get ins ...

  9. 斯坦福大学Andrew Ng - 机器学习笔记(3) -- 神经网络模型

    大概用了一个月,Andrew Ng老师的机器学习视频断断续续看完了,以下是个人学习笔记,入门级别,权当总结.笔记难免有遗漏和误解,欢迎讨论. 鸣谢:中国海洋大学黄海广博士提供课程视频和个人笔记,在此深 ...

  10. Linux中的特殊字符

    单引号: 在单引号中所有的特殊字符都没有特殊含义 双引号: 在双引号中 $ ` \ 三个字符表示,调用变量的值.引用命令.转义,其他特殊字符均没有特殊含义 反引号: 用反引号括起来的内容被当作系统命令 ...