模块加载机制有哪些?es6中的module和其他机制有什么区别?
答案:
模块机制有amd,cmd和commonJs机制
amd对应的实现是requireJs,cmd对应实现是Seals,CommonJs对应实现是nodeJs
(即
amd和cmd针对的是浏览器端,而commonJs针对的是服务端
amd是预加载,加载同时还会解析代码;(优点是快,缺点是加载顺序不固定,容易出问题,埋下大坑)
cmd是懒加载,加载后暂时不执行代码,需要时候再执行(优点是加载顺序可控,缺点是加载速度慢)
require和import的区别
require是amd的加载方式,import是es6中module的加载方式
require在文件任何时候都可以调用,但是import只能放在文件开头使用,因为它是编译时就调用,而require是在文件运行时调用
require的本质是将require的结果(其实就是各种对象,数字,函数等等)赋值给某个变量;而import的实质是依赖于node的一种将es6转码为es5的一种加载方式,import最终会被转码为require
网友评论