最近在学习requireJs,官网中介绍了存在依赖的函数式定义的使用,但我想到,我们在实际开发中常常会碰要引入多个js包,但是但是他们之间都是有顺序的,比如,要引入jquery.js,bootstrapt.js,my.js,然后必须先引用jquery.js,然后在bootstrapt.js,然后再是my.js,那么在应用requireJS中我们该怎么做呢?
最近在学习requireJs,官网中介绍了存在依赖的函数式定义的使用,但我想到,我们在实际开发中常常会碰要引入多个js包,但是但是他们之间都是有顺序的,比如,要引入jquery.js,bootstrapt.js,my.js,然后必须先引用jquery.js,然后在bootstrapt.js,然后再是my.js,那么在应用requireJS中我们该怎么做呢?
原生的require()不支持按次序加载,require()只保证文件全部加载完成之后,才会运行所指定的回调函数。如果按次序加载对你很重要,你可以使用官方提供的order插件。可参考本文:SeaJS与RequireJS最大的区别,其中有关于对问题的讨论。
额,按顺序加载?
你应当理解为“A依赖于B,B依赖于C和D”。如果没有依赖,你的js就可以不按顺序放了。
那么,依赖加载就是模块化js的概念了,而requirejs 就是为此而生的模块化js加载器(AMD规范)。
比如:bootstrap中的modal只是依赖jquery,那么你就需要包装modal。例如:
javascript
define(['jquery'],function(){ var modal=function(){}; return modal; });
当然bootstrap中的js组件并没有模块化定义,所以,也可以用requirejs 来shim。
题主请先了解requirejs的模块定义和使用。你的问题就会得到解决了。
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
请看文档 https://github.com/amdjs/amdjs-api/blob/master/AMD.md