博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
seajs中define方法的id和dependencies参数
阅读量:5234 次
发布时间:2019-06-14

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

这篇其实算是补充上一篇。

事记:

昨天一同事(之前没用过seajs)突然要用seajs,我无意间听到,加上我最近又在研究它,便“自不量力”地跑上去跃跃欲试。

看到他已经敲出来的那些看似有点像的seajs代码,跟我之前的用法不尽相同,我就犯迷糊了。然后回来又自行研究了一下,才大概搞明白了怎么回事,也算帮同事搞定了seajs的引进。

下面进入正题:

我之前的用法是

html:

1 //data-main指定入口文件

mymod.js

1 define(function (require) {2   //require('xxx')//引入别的模块3   //业务代码  4 }

基本没有使用seajs.use方法

今天总结了一下seajs.use的使用

首先:页面上还是引入seajs

1 

然后下面紧跟着调用seajs.use

1 

第一个参数,即那个数组,是依赖的模块,各个模块的输出接口按顺序跟后面的callback形参一一对应。

依赖模块加载完毕后,执行callback。

其实上面的内容很多教程里都有。

但这里不得不提的是,如果这里的依赖模块里如果指定了id,比如

define('gallery/jquery/1.7.2/jquery',[],function (require) {    //jquery code}

而这个id跟模块路径又不一致,会导致无法获取输出接口。

经浏览器查看,引用依赖的jquery的路径是正确的,并且也的确加载到jquery模块了,但输出接口始终为null。

后来google到,开发阶段不推荐define的参数传入三个,只需给定后面的factory即可,发布时通过构建工具提取压缩模块,会自动加上idhe依赖数组(即第二个参数),这样seajs能够更快的定位本身这个模块和它依赖的模块。

顺便提一下,第二个参数,如果显示传入了,那么seajs就不会再通过正则去扫描factory.toString(),直接根据这个参数去加载依赖模块,如果为[]即表示无依赖。

转载于:https://www.cnblogs.com/webstone/archive/2013/04/27/3046376.html

你可能感兴趣的文章
[php]http的状态码
查看>>
利用Fiddler拦截接口请求并篡改数据
查看>>
python习题:unittest参数化-数据从文件或excel中读取
查看>>
Android控件之GridView探究
查看>>
在工程中要加入新的错误弹出方法
查看>>
在Spark中尽量少使用GroupByKey函数(转)
查看>>
SpingBoot之多Profile文件
查看>>
mongo db 启动停止
查看>>
jQuery克隆DOM节点
查看>>
关于Unity3D中的Debug类的一些函数内容
查看>>
vijos1792:摆花
查看>>
fastestmirror不能使用
查看>>
YIi配置debug工具、yii配置gii工具
查看>>
语言学 —— 中文的构词与规律
查看>>
matlab 警告(warning)、错误(error)、异常(exception)与断言(assert)
查看>>
vs 错误提示及解决方案
查看>>
PS 滤镜— — sparkle 效果
查看>>
Python 异常(Exception)
查看>>
第二遍回顾--①前端flex布局
查看>>
文本内容两端对齐
查看>>