博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
seajs快速了解
阅读量:4449 次
发布时间:2019-06-07

本文共 1733 字,大约阅读时间需要 5 分钟。

详情请点击

    SeaJS是一个遵循CommonJS规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制。与jQuery等JavaScript框架不同,SeaJS不会扩展封装语言特性,而只是实现JavaScript的模块化及按模块加载。SeaJS的主要目的是令JavaScript开发模块化并可以轻松愉悦进行加载,将前端工程师从繁重的JavaScript文件及对象依赖处理中解放出来,可以专注于代码本身的逻辑。SeaJS可以与jQuery这类框架完美集成。使用SeaJS可以提高JavaScript代码的可读性和清晰度,解决目前JavaScript编程中普遍存在的依赖关系混乱和代码纠缠等问题,方便代码的编写和维护。

SeaJS的作者是前淘宝UED,现支付宝前端工程师玉伯。

特点

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

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

使用

SeaJS是为了实现JavaScript的模块化的,所以在 SeaJS 中,所有 JavaScript 文件都应该用模块的形式来书写,并且一个文件只包含一个模块。它的操作也是围绕着模块来进行。

1.定义模块——defined

define(id, dependencies,function(require, exports, module) {  // 模块代码});
  • id:当前模块的唯一标识。该参数可选。如果没有指定,默认为模块所在文件的访问路径。如果指定的话, 必须是顶级或绝对标识(不能是相对标识)。
  • dependencies:当前模块所依赖的模块,是一个由模块标识组成的数组。该参数可选。
  • fn:模块的工厂函数。模块初始化时,会调用且仅调用一次该工厂函数。
    • require:用来获取指定模块的接口
define(function(require) {      // 获取模块 a 的接口      var a = require('./a');      // 调用模块 a 的方法      a.doSomething();    });
+ require.async:用来在模块内部异步加载一个或多个模块。``` javascript    define(function(require) {      // 异步加载多个模块,在加载完成时,执行回调      require.async(['./c', './d'], function(c, d) {        c.doSomething();        d.doSomething();      });    });```

2.配置——seajs.config

seajs.config({  // 设置路径,方便跨目录调用  paths: {    'arale': 'https://a.alipayobjects.com/arale',    'jquery': 'https://a.alipayobjects.com/jquery'  },  // 设置别名,方便调用  alias: {    'class': 'arale/class/1.0.0/class',    'jquery': 'jquery/jquery/1.10.1/jquery'  }});

3.加载模块——seajs.use

/ 加载一个模块seajs.use('./a');// 加载一个模块,在加载完成时,执行回调seajs.use('./a', function(a) {  a.doSomething();});// 加载多个模块,在加载完成时,执行回调seajs.use(['./a', './b'], function(a, b) {  a.doSomething();  b.doSomething();});

转载于:https://www.cnblogs.com/yzg1/p/5054708.html

你可能感兴趣的文章
JSP执行原理图
查看>>
js生成 1-100 不重复随机数
查看>>
Nodejs之querystring 查询字符串
查看>>
[洛谷P4092][HEOI2016/TJOI2016]树
查看>>
地图编辑器V1
查看>>
c++ STL map 用法
查看>>
刷题计划
查看>>
杂七杂八毒鸡汤(暂停更新)
查看>>
理解Java中字符流与字节流
查看>>
mysql replication driver 在jdk1.6下失效问题解决
查看>>
Oracle 关于几个随机函数sys_guid、dbms_random.random、dbms_random.value(取随机的结果集)...
查看>>
团队项目—总结
查看>>
第二十六章 hystrix-dashboard + turbine
查看>>
Java 基础【19】代理
查看>>
MySQL数据库的安装(Windows平台)
查看>>
python——pandas库
查看>>
java多线程编程核心技术——第四章总结
查看>>
使用JavaScript代码为博客园个人博客页面自动添置目录
查看>>
什么是面向对象?
查看>>
Bash Shell之date用法
查看>>