define 用来定义模块

require 用来加载模块

1

因为定义一个模块,可能会依赖其他模块,当然最简单的情况下是不依赖其他模块,这时就可以这样写:

//Inside file my/shirt.js:
define({color: "black",size: "unisize"
});

官方解释:If the module does not have any dependencies, and it is just a collection of name/value pairs, then just pass an object literal to define():

2

定义一个模块,也可能需要先做一些setup工作,假设它也不依赖其他模块,这时可以这样写:

//my/shirt.js now does setup work
//before returning its module definition.
define(function () {//Do setup work herereturn {color: "black",size: "unisize"}
});

官方解释:If the module does not have dependencies, but needs to use a function to do some setup work, then define itself, pass a function to define():

3

定义一个模块,可能会很复杂,既依赖其它一些个模块,又需要一些setup工作,那么这个时候可以这样写:

//my/shirt.js now has some dependencies, a cart and inventory
//module in the same directory as shirt.js
define(["./cart", "./inventory"], function(cart, inventory) {//return an object to define the "my/shirt" module.return {color: "blue",size: "large",addToCart: function() {inventory.decrement(this);cart.add(this);}}}
);

被依赖的模块会作为参数一次传入到那个function中。

看官方解释:If the module has dependencies, the first argument should be an array of dependency names, and the second argument should be a definition function. The function will be called to define the module once all dependencies have loaded. The function should return an object that defines the module. The dependencies will be passed to the definition function as function arguments, listed in the same order as the order in the dependency array:

4

Define a Module with a Name

   //Explicitly defines the "foo/title" module:define("foo/title",["my/cart", "my/inventory"],function(cart, inventory) {//Define foo/title object in here.});

相信你一看便理解了,不过它里面的学问可以在没事的时候去看看官方的文档说明,也许很有意思的哦。

还有好多其他情况,但记住本质,define是用来定义模块的,require是用来加载模块的,整个库的开发考虑的情况比较多,比如:为了兼容以前的代码,为了适应某些库的使用,某些转换工具的使用,元编程的应用,等等。只要我们抓住本质,理解意思,具体的格式参考官网,只要别人用了,就肯定是合法的,就肯定是有根源的,今天到此为止。

requireJS define require相关推荐

  1. linux系统怎么装搜狗输入法_Linux之Ubuntu系统安装搜狗输入法

    如何在Ubuntu系统中安装搜狗输入法? 1.第一步  下载搜狗输入法文件for Linux 2.检查更新 update 如果没有更新的话,需要做这一步 3.语言支持 选择fcitx,然后关闭界面 4 ...

  2. vue require css html,requirejs vue vue.router简单框架

    index.html 入口页面html> vue `menu`.`name` base.js requirejs 配置文件(function(){    requirejs.config({   ...

  3. RequireJS学习笔记(转)

    前言 进入移动前端是很不错的选择,这块也是我希望的道路,但是不熟悉啊... 现在项目用的是require+backbone,整个框架被封装了一次,今天看了代码搞不清楚,觉得应该先从源头抓起,所以再看看 ...

  4. JS模块化工具requirejs教程02

    基本API require会定义三个变量:define,require,requirejs,其中require === requirejs,一般使用require更简短 define 从名字就可以看出 ...

  5. 模块化以及requirejs和seajs

    我们用模块化的思想进行网页的编写是为了更好的管理我们的项目 模块与模块之间是独立存在的,每个模块可以独立的完成一个子功能. 模块化所涉及的规范commonjs,AMD,CMD,UMD 其中的commo ...

  6. 菜鸟requireJS教程---2、基本知识

    菜鸟requireJS教程---2.基本知识 一.总结 一句话总结: 1.requireJS中的api就define(比如定义自己的函数)和require 2.requireJS使用的话就是配置req ...

  7. require.js基本认识

    基本API require会定义三个变量:define,require,requirejs,其中require === requirejs,一般使用require更简短 define 从名字就可以看出 ...

  8. requireJS 从概念到实战

    requireJS 可以很轻易的将一个项目中的JavaScript代码分割成若干个模块(module).并且requireJS推荐一个模块就是一个文件,所以,你将获得一些零碎的具有互相依赖关系的JS文 ...

  9. RequireJS 主要函数

    RequireJS API 存在于RequireJS载入时创建的命名空间requirejs下.其主要API主要是下面三个函数: define– 该函数用户创建模块.每个模块拥有一个唯一的模块ID,它被 ...

最新文章

  1. cap流程图_3D流程图
  2. Android当中layer-list使用来实现多个图层堆叠到一块儿
  3. 【BZOJ4771】七彩树 主席树+树链的并
  4. Kafka Producer源码简述
  5. Node.js 连接 MySQL 并进行数据库操作 –node.js 开发指南
  6. CVPR 2021 分布对齐,长尾分布问题解决新思路
  7. 企业架构规划及服务器优化参数
  8. python处理excel的方法有哪些_Python操作Excel简单方法
  9. Nosql初探(voldemort)
  10. 室内设计优美语句_赞美家装设计师的句子
  11. 速来了解头条号的推荐机制,让你的自媒体内容收下更多数据量!
  12. 【数据库基础】数据库的数据查询
  13. qlib格式的可转债数据:正股价,转股价的整合
  14. 计算机专业学生如何找到一份优质实习?如何进大厂呢?
  15. 2023年武汉大学艺术专硕考研上岸前辈初复试备考经验指导
  16. 不会玩可别说节日营销过气了
  17. 怎样对接同花顺股票程序化交易接口?
  18. 论文阅读笔记:Towards Fine-Grained Reasoning for Fake News Detection
  19. java ssm小案例_简易的SSM框架整合小案例
  20. 解决安卓/ios 键盘收回屏幕留白

热门文章

  1. MTK6765智能安全帽方案介绍
  2. C语言strcat库函数讲解
  3. CSS 仿谷歌input输入框,失焦时标题在输入框中,聚焦标题上移
  4. 神经网络是算法还是模型,神经网络 图像相似度
  5. 基于FPGA的数字钟 ——最终实现
  6. esp8266 SDK相关资料
  7. What is hosts?
  8. 微服务理论与实践[1]-什么是微服务
  9. 计算机毕业设计Java“臻宝”书画竞拍系统(源码+系统+mysql数据库+lw文档)
  10. 深夜的士(2019/7/19)