美文网首页
AMD_CMD_RequireJS

AMD_CMD_RequireJS

作者: GaoYangTongXue丶 | 来源:发表于2017-04-24 19:39 被阅读31次

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

  1. web应用越来越复杂,代码复杂度增加
  2. 代码需要复用和解耦合
  3. 性能优化,需要更少的http请求。
    模块化能够解决命名冲突、文件依赖管理的问题,并且能够提供代码的复用性

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

前端的模块化首先是在服务器端出现的。CommonJS规范是在nodeJS的发展中发展起来的。由于Node.js环境有四个变量module,exports,require,global
所以它能提供一种简单方式进行模块的输出与引入.在node环境下打印出module
和exports
结果如下

Module { id: '.', exports: {}, parent: null, filename: 'E:\\jirengu\\模块化\\AMD-requireJS\\app.js', loaded: false, children: [], paths: [ 'E:\\jirengu\\模块化\\AMD-requireJS\\node_modules', 'E:\\jirengu\\模块化\\node_modules', 'E:\\jirengu\\node_modules' ] }{}

但是在浏览器中就没有以上变量。接下来看看Commonjs如何的定义模块和引入模块定义模块

//main.js
function add(num){ return num + 3}
module.exports = {add:add}

引入模块

//app.jsvar 
add = require('math');
console.log(add(2));

require的引入逻辑有很多种,具体的实现方法可以参考阮一峰老师的文章不难发现这是require引入的方式是同步的,在服务器端没问题,但是在浏览器端可能会造成长时间的卡顿,并且浏览器端引入代码是通过动态插入script标签的方式,而动态插入的script标签默认是async异步特性,所以不能保证各加载文件的执行顺序。所以在浏览器端出现了AMD/CMD规范。
AMD(异步模块定义),它采用一种回调的方式进行依赖加载,即先加载模块再执行代码。最典型的就是requireJS。定义和加载模块-语法define('ID',[dependencies],factory function)

CMD规范由来源于玉伯开发的Sea.js,一个文件便是一个模块。定义模块语法:

define(function(require,exports,module) {   exports.methodOne = function(){ //暴露methodOne方法 } module.id = 'methodOne'})

加载模块

define(function(require,exports) { 
//需要时
require var log = require('methodOne')
;})

AMD与CMD的差别是:AMD是首先加载所有模块,再执行,而CMD是按需加载。如今requireJS和seaJS都已经是过去时,webpack和Browserify成为主流

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

  1. 首屏大图为全屏轮播
  2. 有回到顶部功能
  3. 图片区使用瀑布流布局(图片高度不一),下部有加载更多按钮,点击加载更多会加载更多数据(数据在后端 mock)
  4. 使用 r.js 打包应用
    代码
    预览地址

相关文章

  • AMD_CMD_RequireJS

    1. 为什么要使用模块化? 背景:如今CPU、浏览器性能得到了极大的提升,很多页面逻辑迁移到了客户端(表单验证等)...

  • AMD_CMD_RequireJS

    题目1: 为什么要使用模块化? 模块的由来:嵌入网页的JS代码越来越庞大,越来越像桌面程序,需要一个团队去分工协作...

  • AMD_CMD_RequireJS

    题目1: 为什么要使用模块化? 在JavaScript发展初期就是为了实现简单的页面交互逻辑,寥寥数语即可;如今C...

  • AMD_CMD_RequireJS

    为什么要使用模块化? 解决命名冲突 依赖管理 提高代码可读性 代码解耦,提高复用性 CMD、AMD、CommonJ...

  • AMD_CMD_RequireJS

    1、为什么要使用模块化? a)解决命名冲突b)增强代码的阅读以及维护性c)便于依赖管理d)提高代码的复用率 2、C...

  • AMD_CMD_RequireJS

    题目1: 为什么要使用模块化? 解决命名冲突 便于依赖管理 提高代码的可读性 代码解耦,提高代码复用性 题目2: ...

  • AMD_CMD_RequireJS

    1、为什么要使用模块化? 解决命名冲突,当代码量很大的时候很容易有命名冲突。 实现依赖管理,代码量很大时候,代码之...

  • AMD_CMD_RequireJS

    题目1: 为什么要使用模块化? web应用越来越复杂,代码复杂度增加 代码需要复用和解耦合 性能优化,需要更少的h...

  • AMD_CMD_RequireJS

    1: 为什么要使用模块化? 1.解决命名冲突2.可进行依赖管理3.增强代码的可读性4.代码解耦,提高代码的复用率 ...

  • AMD_CMD_RequireJS

    题目1:为什么要使用模块化? 最主要的目的:解决命名冲突依赖管理其他价值提高代码可读性代码解耦,提高复用性 在Ja...

网友评论

      本文标题: AMD_CMD_RequireJS

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