Seajs的使用

JavaScript011

Seajs的使用,第1张

seajs.config

alias

别名配置,配置之后可在模块中使用require调用 require('jquery')

paths

设置路径,方便跨目录调用。通过灵活的设置path可以在不影响base的情况下指定到某个目录。

vars

变量配置。有些场景下,模块路径在运行时才能确定,这时可以使用 vars变量来配置。

vars 配置的是模块标识中的变量值,在模块标识中用 {key}来表示变量。

map

该配置可对模块路径进行映射修改,可用于路径转换、在线调试等。

preload

使用preload配置项,可以在普通模块加载前,提前加载并初始化好指定模块。

注:preload中的空字符串会被忽略掉。

注:preload中的配置,需要等到 use 时才加载。比如:

注:preload 配置不能放在模块文件里面:

debug

值为true时,加载器不会删除动态插入的 script 标签。插件也可以根据debug配置,来决策 log 等信息的输出。

base

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

charset

获取模块文件时,<script>或 <link>标签的charset属性。 默认是utf-8

charset还可以是一个函数:

seajs.use

用来在页面中加载一个或多个模块。seajs.use(id, callback?)

注意:seajs.use 与 DOM ready 事件没有任何关系。如果某些操作要确保在 DOM ready 后执行,需要使用 jquery 等类库来保证。比如

注意:use方法第一个参数一定要有,但是可以是null,也可以是一个变量

seajs.cache

通过 seajs.cache,可以查阅当前模块系统中的所有模块信息。

比如,打开 seajs.org,然后在 WebKit Developer Tools 的 Console 面板中输入 seajs.cache,可以看到:

seajs.reslove

类似require.resolve,会利用模块系统的内部机制对传入的字符串参数进行路径解析。

seajs.data

通过 seajs.data,可以查看 seajs 所有配置以及一些内部变量的值,可用于插件开发。当加载遇到问题时,也可用于调试。

seajs的作用:

当你的网站开发越来越复杂的时候,会经常遇到这些问题吗?

冲突

性能

依赖

seajs如何解决?

①引入sea.js的库

②如何变成模块?

define 在模块grunt合并的时候 define里面要多2个参数 一个id ,一个依赖模块的数组

③如何调用模块?

exports

seajs.use

④如何依赖模块?

require https://github.com/seajs/seajs/issues/259 requie还是严格书写约定不能被修改。 (但是自己在rrd上却看到被修改了很疑惑)

深入学习seajs

define

require

seajs.use

seajs.config

alias

preload

debug

模块化历史

ECMAScrpt第六版将正式支持模块语法

nodeJS

commonJS

AMD

requireJS

跟seajs一样,web端模块化

seajs采用cmd规范