关于require的用法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="require.js"></script>
<script>
require.config({
paths:{
"jquery":["js/jquery-1.10.2.min"],
"a" : "js/a"
}
})
require(["jquery","a"],function($){
$(function(){
alert("jq已加载");
})
});
</script>
</head>
<body>
<span>body</span>
</body>
</html>
以下为a.js
require(['jquery'],function(){
alert("$有了");
})
a.js中如把require改成define的话,这两句话都还是能弹出来,在此请教有啥区别
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
requirejs主要是用于模块化的。你这样在一个文件里,怎么都行。
define 用于定义一个模块,同时申明它的依赖关系,这个模块会在使用到的时候计算一次导出结果然后缓存下来。
require 用于使用一些模块。通常一个 require 就是一个程序入口。
它们的共同点是,对于要使用或依赖的模块,都必须先完成导出之后才能使用。
你说把 require 改成 define 之后仍然会弹就有点奇怪了,请确认一下不是缓存引起的。理论上来说 define 后面量个 factory 函数,在模块未被引用的时候是不会执行的。如果两个 require 都改成 define 的话,在 a.js 中的那句会因为 html 中的引用弹出来,但html 中那句因为没有引用,不应该弹出来啊
require是使用模块,define是定义模块。
而在require.config中path指的是定义模块的路径。
因为前面
引用了a模块,自然要执行了
如果是
就应该不会执行了