模块化基础

2016-09-02  本文已影响25人  羞涩的涩

为什么要使用模块化?

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

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

define(function(require,exports,module){
    var $ = require('jquery.js')
    $('div').addClass('active');
});
//cmd推崇就近依赖,所以依赖写在函数中,require是一个方法,exports是一个对象,提供对外接口,module是一个对象,存储与当前模块相关的属性和方法。
define('modal',['jQuery'],function($){
    $('modal').show();
})
//define为定义关键字,modal为定义的模块名字,一般可以省略,[]内为要加载的依赖模块,紧跟回调函数。
//模块定义  myMode.js

var name = 'jiuyi';

function printName(){
    console.log(name);
}

functionprintFullName(firstName){
    consoele.log(firstName+name);
}

module.erports = {
    printName: printName,
    printFullName: printFullName
}

//加载模块

var nameModule = require('./myMode.js')

nameModule.printName();

如下requirejs配置中, baseUrl 有什么作用?以什么作为基准? paths 的作用和用法是什么?

requirejs.config({
  baseUrl: "src/js",  
  paths: {
    'jquery': 'lib/bower_components/jquery/dist/jquery.min'
  }
});

baseUrl的作用是设置require加载JS文件的基础路径,以html所在的路径为基准,paths作用是设置baseUrl基础路径之外,设置某些特定文件的路径,以baseUrl路径为基准。


如下 r.js 的打包配置中 baseUrl 是什么? name 是什么

({
    baseUrl: "./src/js",
    paths: {
        'jquery': 'lib/bower_components/jquery/dist/jquery.min'
    },
    name: "main",
    out: "dist/js/merge.js"
})
上一篇下一篇

猜你喜欢

热点阅读