美文网首页
AMD_CMD_RequireJS

AMD_CMD_RequireJS

作者: 大大的萝卜 | 来源:发表于2017-05-03 14:12 被阅读0次

    题目1: 为什么要使用模块化?

    1.解决命名冲突
    2.解决依赖管理
    3.提高代码可读性
    4.代码解耦,提高复用性

    2. CMD、AMD、CommonJS 规范分别指什么?有哪些应用

    首先,Commonjs是用在服务器端的,同步的,如nodejs
    amd, cmd是用在浏览器端的,异步的,如requirejs和seajs
    其中,amd先提出,cmd是根据commonjs和amd基础上提出的

    AMD规范其实只有一个主要接口 define(id,dependencies,factory),它要在声明模块的时候指定所有的依赖dependencies,并且还要当做形参传到factory中,对于依赖的模块提前执行,依赖前置。

    AMD和CMD的区别:AMD的依赖一开始就写好,然后用到直接用,CMD推崇依赖就近,如下面的例子,用到哪个模块,现场require,然后使用模块里的方法。
    //AMD define(['./a','./b'], function (a, b) {   //依赖一开始就写好   a.test();   b.test(); }); //CMD define(function (requie, exports, module) {   //依赖可以就近书写   var a = require('./a');   a.test();   ...   //软依赖   if (status) {     var b = requie('./b');     b.test();   } });

    COMMONJS:根据CommonJS规范,一个单独的文件就是一个模块。加载模块使用require方法,该方法读取一个文件并执行,最后返回文件内部的exports对象。自己给别人用就export,别人要求用就是require
    //foobar.js var test = 123;//私有变量 function foobar () { //公有方法   this.foo = function () {     // do someing ...   }   this.bar = function () {     //do someing ...   } } var foobar = new foobar(); //exports对象上的方法和变量是公有的 exports.foobar = foobar; //require方法默认读取js文件,所以可以省略js后缀 var test = require('./foobar').foobar; test.bar();

    题目3: 使用 requirejs 完善入门任务15,包括如下功能:

    demo:本地mock成功

    Paste_Image.png

    github:https://github.com/freebreaker/requirejs-demo

    相关文章

      网友评论

          本文标题:AMD_CMD_RequireJS

          本文链接:https://www.haomeiwen.com/subject/vcvktxtx.html