seajs简记

一、前端模块化的价值

  1. 解决命名冲突
  2. 摆脱文件依赖
  3. 性能优化
  4. 提高可维护性
  5. seajs.use方法调用
    通过exports暴露接口
    通过require引入依赖

二、Sea.js 的常用 API

  1. seajs.config

    base string    Sea.js 在解析顶级标识时,会相对 base 路径来解析

  2. seajs.use

    用来在页面中加载模块

  3. require

    是一个方法,接受 模块标识 作为唯一参数,用来获取其他模块提供的接口
    require 的参数值 必须 是字符串直接量

  4. require.async

    require.async 方法用来在模块内部异步加载模块,并在加载完成后执行指定回调。callback 参数可选

  5. exports

    exports 是一个对象,用来向外提供模块接口

    可以直接将方法赋给接口,也可以将其添加到对象里面赋给接口

三、模块

  1. 系统
    构建:a. 定义系统成员     b. 约定系统通讯
  2. 模块
    a. js代码,统一固定的格式      b. 通过基本交互规则,能彼此引用协同工作
  3. 模块标识
    相对标识:相对标识以 . 开头,只出现在模块环境中(define 的 factory 方法里面)。
    顶级标识:顶级标识不以点(.)或斜线(/)开始, 会相对模块系统的基础路径(即 Sea.js 的 base 路径)来解析

四、 使用步骤

    1. 引入sea.js文件(方法与引用jQuery相同)
    2. 配置信息
      在<script>中,方式与写jQuery代码相同
      配置sea.js的基础路径  及加载模块
    3. 写基础模块
    4. 写引用模块(main)
时间: 2024-10-10 06:42:14

seajs简记的相关文章

简单的使用Seajs

什么是Seajs Seajs是一个加载器 http://yslove.net/seajs/ 遵循 CMD 规范模块化开发,依赖的自动加载.配置的简洁清晰. 兼容性 Chrome 3+ Firefox 2+ Safari 3.2+ Opera 10+ IE 5.5+ 基本应用 导入Seajs库 去官网下载最新的seajs文件, http://seajs.org/docs/#downloads 在页尾引入seajs: <script src="/site/script/sea.js"

seajs

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

自己动手写快速开发框架1【EF+WEBAPI+EASYUI+SEAJS+...】大概想法

自己动手写个框架,大约周期为半年,作为5年.net工作的积累及思考,构想是蛮大的,先看架构图(貌似什么都想做...): 已经开始了大概半个月时间,大概的更新记录如下: 20160715: 1.后端加入EF 的Code First 2.前端引用easyui 3.加入log4net日志管理 4.日志管理加入txt记录管理页面 20160727: 1.引入seajs,管理所有前前端接口 2.加入日志支持数据库记录 3.引入signalr 支持消息推送 20160801: 1.修正了清除日志功能 2.将

JS模块化库seajs体验

seajs http://seajs.org/docs/en.html#intro https://github.com/seajs/seajs/releases Extremely simple experience of modular development Why use Sea.js ? Sea.js's pursuit of a simple, natural coding and organization,has the following key aspects: The def

SeaJS与RequireJS最大的区别

1. 对于依赖的模块,AMD 是提前执行,CMD 是延迟执行.不过 RequireJS 从 2.0 开始,也改成可以延迟执行(根据写法不同,处理方式不同).CMD 推崇 as lazy as possible. 2. CMD 推崇依赖就近,AMD 推崇依赖前置. 3. AMD 的 API 默认是一个当多个用,CMD 的 API 严格区分,推崇职责单一.比如 AMD 里,require 分全局 require 和局部 require,都叫 require.CMD 里,没有全局 require,而是

seajs的使用

写在前面 seajs是什么? Seajs是一个js文件加载器. 遵循 CMD 规范模块化开发,依赖的自动加载.配置的简洁清晰. 用于Web开发的模块加载工具,提供简单.极致的模块化体验 一:使用 文件目录: demo_1.html <!DOCTYPE html> <html> <head> <title></title> <script src="seajs/sea.js"></script> <

seajs加载jquery时提示$ is not a function该怎么解决

这篇文章主要介绍了seajs加载jquery时提示$ is not a function该怎么解决的相关资料,需要的朋友可以参考下 jquery1.7以上的都支持模块化加载,只是jquery默认的是支持amd,不支持cmd.所以要用seajs加载jquery时,我们需要稍微做下改动,需要把以下内容做下修改,具体修改方式如下: 把 ? 1 2 3 4 5 if (typeof define === "function" && (define.amd)) {   defin

seajs在jquery多个版本下引用jquery的插件的方案

好多插件是依赖jquery的特定版本的,用的jQuery全局对象,而项目有时候用的是jquery的其他版本,例如:项目默认用的jquery1.7.2,而插件用的jquery1.2.6 假如用1.7.2就不正常怎么处理呢? 这个属于jquery插件的兼容问题…… tickwudi commented on Jul 17, 2014 是的,现在已经通过seajs包装解决了!define(function(require,exports,module){//使用插件指定版本var jQuery=req

新版seajs 如何把 jquery 1.11.x 暴露到全局

define jquery的地方,module.exports = window.$ = window.jQuery = $ 因为seajs的延迟执行策略,单是在define后是不能保证jQuery一定在全局中的吧?应该还需要一次seajs.use或者require吧? army8735 commented on Jun 25, 2014 正确 semious commented on Jun 25, 2014 个人觉得 像jquery这样的基础组件没必要再用什么东东包裹一次,直接引用放出全局$