seaJs模块化开发简单入门

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

  • 遵从CMD规范,代码模块化
  • 中文文档通俗易懂,入门上手简单
  • 兼容性好、配置简洁明了、提供插件接口

seajs模块化基本流程:

  1. 引入sea.js库
  2. define定义模块
  3. exports暴露模块
  4. require导入模块

安装

  1. npm安装

    npm i seajs
    
  2. bower安装
    bower i seajs
    
  3. 官网下载:http://seajs.org/docs/#downloads

定义模块

  • main.js

    1
    
    2
    
    3
    
    4
    
    5
    
    6
    
    7
    
    8
    
    9
    
    10
    
    11
    
    12
    
    define(function(require,exports,module){        
    
    // 引用test.js
    
    //require('./test.js')
    
    /*
    
    * 如果地址是一个模块,那么require的返回值就是模块中的exports
    
    */
    
    function (){
    
    alert(require('./test.js').num);
    
    };
    
    // 向外暴露模块接口
    
    exports.alert = alert;
    
    })
    
  • 1) exports : 对外的接口
    2) require : 依赖的接口
  • test.js
    1
    
    2
    
    3
    
    4
    
    define(function(require,exports,module){
    
    var num = 10;
    
    exports.num = num;
    
    });
    

调用模块

  • html页面中引入seajs和使用use方法请求入口文件

    1
    
    2
    
    3
    
    4
    
    5
    
    6
    
    7
    
    8
    
    9
    
    10
    
    11
    
    12
    
    13
    
    14
    
    15
    
    16
    
    17
    
    18
    
    19
    
    20
    
    21
    
    22
    
    23
    
    24
    
    25
    
    26
    
    27
    
    28
    
    
    大专栏  seaJs模块化开发简单入门iv class="line"><html>
    
    <head>
    
    <meta charset="UTF-8">
    
    <title>seaJs</title>
    
    </head>
    
    <body>
    
    <script src="sea.js"></script>
    
    <script>
    
    /*
    
    * seajs.use方法:
    
    * 页面去调用模块,
    
    * 第一个参数:模块的地址
    
    * 第二个参数:地址加载成功后的回调函数
    
    * seajs的默认目录:sea.js所在的目录
    
    * */
    
    seajs.use('./js/main.js',function(exports){
    
    // 回调的参数,就是模块中的exports
    
    exports.alert();
    
    });
    
    // 加载多个文件
    
    /*
    
    seajs.use(['./main.js','./main2.js'],function(ex1,ex2){
    
    操作
    
    })*/
    
    </script>
    
    </body>
    
    </html>
    
  • 加载多个入口文件
    1
    
    2
    
    3
    
    4
    
    5
    
    seajs.use(['./main.js','./main2.js'],function(ex1,ex2){
    
    // 模块加载完成时执行回调操作
    
    ex1.fn();   // 调用ex1的方法
    
    ex2.fn();   // 调用ex2的方法
    
    })
    

有些js文件可能是在某些事件触发后才会被加载使用,因此没有必要在页面刚访问时,就加在所有资源文件,这样也可以减少客户端与服务器端的请求时间,提高用户体验。

  • seaja对于此便提供了一个async异步请求的方法:

    1
    
    2
    
    3
    
    require.async('./test2.js',function(ex){    // 异步请求
    
    ex.fn();
    
    })
    

  1. http://seajs.org/docs/#docs
  2. http://www.antcome.com/myfaq/SeaJS.html

原文地址:https://www.cnblogs.com/lijianming180/p/12251337.html

时间: 2024-07-29 18:00:52

seaJs模块化开发简单入门的相关文章

初学seaJs模块化开发,利用grunt打包,减少http请求

原文地址:初学seaJs模块化开发,利用grunt打包,减少http请求 未压缩合并的演示地址:demo2 学习seaJs的模块化开发,适合对seajs基础有所了解的同学看,目录结构 js — —dist   //压缩后的目标文件夹 —lib   //各个模块 —drag    //拖拽模块 —scale   //缩放模块 —seajs    //seajs库 —seajs_drag    //入口的主文件main.js —main.js /*——————————————————————————

轻轻谈一下seaJs——模块化开发的利器

"仅做一件事,做好一件事." 这个应该就是seaJs的精髓了. 我在自己的一些项目中使用过seaJs,对其算是了解一二,现在就班门弄斧,轻轻地谈一下. 首先上一段度娘的话: "seaJs是一个遵循CommonJs规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制.与jQuery等JavaScript框架不同,SeaJS不会扩展封装语言特性,而只是实现JavaScript的模块化及按模块加载.SeaJS的主要目的是令JavaScript开

cocos2dx游戏开发简单入门视频教程 (cocos2d-x)- 第1天

转载请注明出处:http://blog.csdn.net/xingxiliang/article/details/18557631 更新:出品了box2d编辑工具PhysicsEditor的视频(一起做一个实战级别的游戏,需要MAC操作系统)http://blog.csdn.net/s_xing/article/details/21331459 更新:出品了box2d物理引擎视频http://blog.csdn.net/s_xing/article/details/20836727 更新:终于出

【翻译】WPF应用程序模块化开发快速入门(使用Prism+MEF)

编译并运行快速入门 需要在VisualStudio 2010上运行此快速入门示例 代码下载:ModularityWithMef.zip 先重新生成解决方案 再按F5运行此示例 说明: 在此快速入门示例解决方案的 ModularityWithMef.Desktop程序集中 加入了生成成功时的“后期生成事件命令行” IF NOT EXIST "$(TargetDir)\DirectoryModules" mkdir "$(TargetDir)\DirectoryModules&q

WindowsService开发简单入门

一.简介 1) 二.demo建立 1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 三.总结及注意事项

2.精通前端系列技术之JavaScript模块化开发

在使用seajs模块化开发之前,直接在页面引用js会容易出现冲突及依赖相关的问题,具体问题如下 问题1:多人开发脚本的时候容易产生冲突(比如全局参数冲突,方法名冲突),可以使用命名空间降低冲突,不能完全避免冲突 // JavaScript Document /*var a = 10; function tab(){} function drag(){} function dialog(){}*/ var miaov = {}; //名字比较长 , 只能降低冲突,不能完全避免 miaov.a =

模块化开发,SeaJS简单总结

seajs是一个遵循CommonJS规范的JavaScript模块加载框架. 在 Sea.js 中,所有 JavaScript 模块都遵循 CMD 模块定义规范.该规范明确了模块的基本书写格式和基本交互规则. 在 CMD 规范中,一个模块就是一个文件.代码的书写格式如下:define(factory); SeaJS解决了两个问题: 1.JavaScript的模块化 2.按模块加载 SeaJS在开发中的角色:在多人协作开发时,起着后勤人员的作用,协调  文件依赖.命名冲突.按需加载的作用; 二.用

seajs进行模块化开发

seajs进行模块化开发 模块化前端开发入门指南(二) 2015-08-26 15:23 by paseo, 370 阅读, 0 评论, 收藏, 编辑 概览 使用seajs模块化加载器进行模块化开发,以及它的一些弊端. 使用seajs进行模块化开发 项目目录 新建新项目 引入sea.js,文件路径modules/sea.js 引入公共库jquery. 新建index.html,index.js 项目目录如下: 关于sea.js的公共模块路径sea.js加载时,会自动获取sea.js所在的路径,将

模块化开发,SesJS简单总结

一.概念:SeaJS是一个遵循CommonJS规范的JavaScript模块加载框架. 在 Sea.js 中,所有 JavaScript 模块都遵循 CMD(Common Module Definition) 模块定义规范.该规范明确了模块的基本书写格式和基本交互规则. 在 CMD 规范中,一个模块就是一个文件.代码的书写格式如下:define(factory); SeaJS解决了两个问题: 1.JavaScript的模块化 2.按模块加载 SeaJS在开发中的角色:在多人协作开发时,起着后勤人