JavaScript模块化编程之AMD
简单的说一下AMD是"Asynchronous Module Definition"的缩写,意思就是"异步模块定义"。它采用异步方式加载模块,模块的加载不影响它后面语句的运行。所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行。
require.js作用
- 实现js文件的异步加载,避免网页失去响应;
- 管理模块之间的依赖性,便于代码的编写和维护。
首先引入requireJS文件,并在script标签上指定入口文件(主模块):
<head><meta charset="UTF-8"><title>javascript模块化编程</title>
</head>
<body>
<script type="text/javascript" src="https://cdn.bootcss.com/require.js/2.3.5/require.js" defer async data-main="js/main.js"></script>
</body>
接下来需要对main.js进行一些配置:
// 模块加载的配置
require.config({// 基目录 如果每个模块不在一个基目录// 不使用baseUrl直接在paths中具体指定baseUrl: "lib",paths: {'jquery': 'jquery','vue': 'vue.min','pagination': 'my-pager'},// shim属性 专门用来配置不兼容的模块 每个模块要定义:// (1) exports值(输出的变量名)表明这个模块外部调用时的名称// (2) deps数组 表明该模块的依赖性// 比如jq的插件可以这样定义shim: {'jquery.scroll': {deps: ['jquery'],exports: 'jQuery.fn.scroll'}}// requireJS还有一系列插件 不再赘述// [Plugins](https://github.com/requirejs/requirejs/wiki/Plugins)
});
// 主模块依赖于其它模块,这时就需要使用AMD规范定义的require()函数
// require([modules], function (modules) { });
require(['jquery', 'vue', 'pagination'], function ($, Vue, pagination) {console.log($);console.log(Vue);console.log(pagination);
});
关于自己定义符合AMD规范的模块,比如上面例子中的pagination:
(function (factory) {if (typeof exports === 'object') {// Node/CommonJSfactory(require('document'), require('window'));} else if (typeof define === 'function' && define.amd) {// AMDdefine(factory(document, window));} else {// Browser globalsfactory(document, window);}
}(function (document, window) {var Test = {a: 1}if (typeof module != 'undefined' && module.exports) {module.exports = Test;} else if (typeof define == 'function' && define.amd) {define(function () { return Test; });} else {window.Test = Test;}
}));
原文地址:https://segmentfault.com/a/1190000016913752
转载于:https://www.cnblogs.com/lalalagq/p/9940603.html
JavaScript模块化编程之AMD相关推荐
- js模块化编程之CommonJS和AMD/CMD
一.CommonJS 1.CommonJS API定义很多普通应用程序(主要指非浏览器的应用)使用的API,从而填补了这个空白.它的终极目标是提供一个类似Python,Ruby和Java标准库.这样的 ...
- JavaScript模块化 --- Commonjs、AMD、CMD、es6 modules
随着前端js代码复杂度的提高,JavaScript模块化这个概念便被提出来,前端社区也不断地实现前端模块化,直到es6对其进行了规范,下面就介绍JavaScript模块化. 这篇文章还是希望能给大家一 ...
- Javascript模块化编程:AMD规范
一.模块的规范 先想一想,为什么模块很重要? 因为有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块. 但是,这样做有一个前提,那就是大家必须以同样的方式编写模块,否则你有你的写 ...
- 树莓派模块化编程之TM1637驱动四位数码管
一.驱动TM1637的时序图 二.代码实现 #encoding:utf-8 import RPi.GPIO as GPIO import time GPIO.setwarnings(False) GP ...
- 【实战篇】模块化编程之LCD驱动框架详解
ID:嵌入式云IOT技术圈 作者:杨源鑫 传送门:[架构篇]嵌入式编程中如何给代码的结构分层 废话不多说,理论讲太多没啥感觉,这些条条框框本质就是基于面对对象的设计模式相关的一些理论,设计模式就是前人 ...
- javascript模块化之CommonJS、AMD、CMD、UMD、ES6
javascript模块化之CommonJS.AMD.CMD.UMD.ES6 一.总结 一句话总结: CommonJS是同步加载模块,用在服务端:AMD是异步加载模块,用于浏览器端 1.为什么服务器端 ...
- JavaScript 模块化编程(二):AMD规范
这个系列的第一部分介绍了Javascript模块的基本写法,今天介绍如何规范地使用模块. (接上文) 七.模块的规范 先想一想,为什么模块很重要? 因为有了模块,我们就可以更方便地使用别人的代码,想要 ...
- Javascript模块化编程系列二: 模块化的标准化(CommonJS AMD)
前言 Javascript模块化编程系列一: 模块化的驱动 在前一篇介绍了为什么要进行Javascript模块化编程.至于如何实现模块化,不同的开发组织和个人具体的实现方式肯定是不一样.如何统一一个规 ...
- 无法找到模块“mint-ui”的声明文件_[搬运] JavaScript 模块化:CommonJS vs AMD vs ES6...
本文主体部分 翻译+搬运 自外网著名技术博客网站 medium.com 的一篇点赞数 2.7k 的文章 (文章链接在结尾处) 什么是 JavaScript 模块 JavaScript 模块指的是一段可 ...
- Javascript模块化编程(二):AMD规范
Javascript模块化编程(二):AMD规范 七.模块的规范 先想一想,为什么模块很重要? 因为有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块. 但是,这样做有一个前提, ...
最新文章
- mysql开启binlog
- HIve分组查询返回每组的一条记录
- 主分支和'起源/主人'有分歧,如何'疏远'分支'?
- 腾讯offer是什么样子_记一次腾讯社招前端面试(已拿到offer入职)
- 大话设计模式(八 用“策略模式”是一种好策略)
- java jdbc标签jsp_jsp+servlet+javabean+jdbc实现增删改查和分页功能 案例源码
- 没有人会告诉您乘坐飞机时的几个事实 但是您一定要知道
- 某小型校园网规划与设计要点(课程报告)
- spring IOC容器 Bean 管理——基于注解方式
- dj鲜生-37-order应用-模型类创建
- python之设计模式的装饰器9步学习
- 台式电脑打不开计算机c盘,电脑c盘打不开进不了系统怎么办
- 计算机应用新教程,计算机应用基础教学教程(新).doc
- 计算机无法选择字体,电脑系统字体缺失怎么办
- rational rose mysql_用Rational Rose来建立数据库表
- cf两边黑屏怎么解决win10_电脑黑屏怎么解决
- 庄帅:托管分销与物流集成战略雏形
- 2022全国高职院校教师真实薪酬数据汇总
- 量产国产服务器cpu芯片,中国第一!百度自研芯片量产:配国产CPU
- python import变灰_python--pycharm中import导入包呈现灰色问题之解决~很实用
热门文章
- mybatis plugins_[Mybatis]-[基础支持层]-插件-多个插件执行顺序
- 协同过滤算法_一文带你了解协同过滤的前世今生
- 组态王通过串口服务器通讯smart200_实例讲解通过代码调试串口通讯的方法
- idea中mapper.xml的头文件配置
- 【渝粤教育】国家开放大学2018年春季 7392-21TMatlab语言及其应用 参考试题
- [渝粤教育] 广东-国家-开放大学 21秋期末考试标准的研制与编制★10003k1
- 操作系统原理(四)死锁和进程调度
- Hutool工具里,POST方法,body中传参的几种调用方法
- [转]word 转换成pdf
- [转]vs2003,安装程序检测到另一个程序要求计算机重新启动