前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >带你快速熟悉 seajs 模块化开发

带你快速熟悉 seajs 模块化开发

作者头像
公众号---人生代码
发布2021-01-27 15:56:05
3390
发布2021-01-27 15:56:05
举报
文章被收录于专栏:人生代码人生代码

模块化 seajs API 参考

首先说明一下,这个已经是老框架了,不建议使用,只是当做了解一下过去的知识,或者学习一下源代码,知道过去的模块化开发是什么样的,模块化开发的好处,API 快速参考

该页面列举了 Sea.js 的常用 API。只要掌握这些用法,就可以娴熟地进行模块化开发。

seajs 的目的就是将 js,css,html 文件变成一个模块,一个 .js,.css,.html 就是一个模块。

seajs.config

这个有点像 webpack 的配置项,可以方便我们配置一些路径,以及一些简化路径等等,比如下面的代码:

代码语言:javascript
复制
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'
  }

});

上面可以给项目设置一些全局的 js 代码,以及配置别名等等。

seajs.use

用来在页面中加载一个或多个模块。有点像 es6 中的 import 关键字,就是用来导入文件的 但是 seajs.use 是用来加载模块的。

代码语言:javascript
复制
// 就比如说我们创建了一个 a.js 文件,我们就可以使用 seajs.use 加载一个模块
seajs.use('./a');

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

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

define

用来定义模块。Sea.js 推崇一个模块一个文件,遵循统一的写法:

代码语言:javascript
复制
// 比如创建 a.js
define(function(require, exports, module) {

  // 模块代码

});

require

这个有点像 nodejs 里面的关键字 require 用来导入插件的。require 用来获取指定模块的接口。

代码语言:javascript
复制
define(function(require) {

  // 获取模块 a 的接口
  var a = require('./a');

  // 调用模块 a 的方法
  a.doSomething();
});

require.async

用来在模块内部异步加载一个或多个模块。

代码语言:javascript
复制
define(function(require) {

  // 异步加载一个模块,在加载完成时,执行回调
  require.async('./b', function(b) {
    b.doSomething();
  });

  // 异步加载多个模块,在加载完成时,执行回调
  require.async(['./c', './d'], function(c, d) {
    c.doSomething();
    d.doSomething();
  });

});

exports

用来在模块内部对外提供接口。有点像 es6 中的 export 关键字,用来给模块暴露接口的。

代码语言:javascript
复制
define(function(require, exports) {

  // 对外提供 foo 属性
  exports.foo = 'bar';

  // 对外提供 doSomething 方法
  exports.doSomething = function() {};

});

module.exports

与 exports 类似,用来在模块内部对外提供接口。

代码语言:javascript
复制
define(function(require, exports, module) {

  // 对外提供接口
  module.exports = {
    name: 'a',
    doSomething: function() {};
  };

});
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-01-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CryptoCode 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 模块化 seajs API 参考
    • seajs.config
      • seajs.use
        • define
          • require
            • require.async
              • exports
                • module.exports
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档