define / require 都处理依赖关系, 都会立即执行函数体内的代码, 比如函数中内 require(['someModule],fucntion(){ 这个 module 直接写在 define 的依赖数组里也可以的, 那有什么地方是必须用 require 方法的?
require(['someModule],fucntion(){
require
不懂楼主问题是什么…
没有什么地方必须用require,但是两者的意义是不一样的。 定义模块需要用define,而不是require。 如果是requirejs的程序入口,则是用require更合适。 当然你把define当做require来用也没什么,但感觉那样就不make sense了
我的问题是define和require的具体使用方法的区别和适用场合, 我试了一下define只能加载debine包装起来的库 ,非规范的只能用require来用,require可以加载包装和非包装的库,兼容性更好 只要是全是规范的模块,全部用define就可以搞定,入口用define一样立即执行 简单总结一下define用在符合规范的地方,require用来处理兼容, 另外还有一个注意的地方是require是异步,相当于程序中的过程,require不能用在接受结果的地方,举个例子
modA.js --------------------- define([], function( template) { var modA = { html:'', render: function() { var T=this; require(['handlebars'],function(){ var tpl=' hello {{ title }} '; var data = {"title": "Story"}; var compiledTemplate = Handlebars.compile(tpl); T.html = compiledTemplate(data); console.log(' inside require'+ T.html ); return T.html; //return html; }); } }; return modA; }); load-page.js ----------------------- define(['modA'],function (t) { var out=t.render(); console.log(out); console.log(t.html); setTimeout(function name() { console.log(t.html); },3000); });
模板在require里面有值,但是因为异步的关系,主页面执行取不到返回的值,还有require里面的this也要小心,总之处理兼容就要小心各种坑
我去,是我肤浅了。原来require还可以这么用。。。
PS:虽然说可以这么用,使用场景还是很有限,至少对于我来说。 考虑到最后会用uglifyJS打包,这种require的使用方式应该不会被打包进去吧(这里不太清楚。。O.O)
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
不懂楼主问题是什么…
没有什么地方必须用require,但是两者的意义是不一样的。 定义模块需要用define,而不是require。 如果是requirejs的程序入口,则是用require更合适。 当然你把define当做require来用也没什么,但感觉那样就不make sense了
我的问题是define和require的具体使用方法的区别和适用场合, 我试了一下define只能加载debine包装起来的库 ,非规范的只能用require来用,require可以加载包装和非包装的库,兼容性更好 只要是全是规范的模块,全部用define就可以搞定,入口用define一样立即执行 简单总结一下define用在符合规范的地方,require用来处理兼容, 另外还有一个注意的地方是require是异步,相当于程序中的过程,require不能用在接受结果的地方,举个例子
模板在require里面有值,但是因为异步的关系,主页面执行取不到返回的值,还有require里面的this也要小心,总之处理兼容就要小心各种坑
我去,是我肤浅了。原来require还可以这么用。。。
PS:虽然说可以这么用,使用场景还是很有限,至少对于我来说。 考虑到最后会用uglifyJS打包,这种require的使用方式应该不会被打包进去吧(这里不太清楚。。O.O)