requireJS模块化的几种方式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhanghui_hn/article/details/86567053

本篇文章主要介绍requireJS模块化的几种方式
参考:https://requirejs.org/docs/api.html#define

  • 定义含简单的键值对的模块
define({
	color:"red",
    size:"12"
});

定义含简单函数的模块

define(function(){
	return {
    	color:"red",
        size:"12"
    };
});
  • 定义带依赖函数的模块
define(["./cart", "./inventory"], function(cart, inventory) {
	return {
    	color: "blue",
        size: "large",
        addToCart: function() {
        	inventory.decrement(this);
            cart.add(this);
        }
   }
}
  • 将函数定义为一个模块
define(["my/cart", "my/inventory"],
	function(cart, inventory) {
    	return function(title) {
        	return title ? (window.title = title) 
        		: inventory.storeName + ' ' + cart.name;
        }
     }
);
  • 指定一个Jsonp服务依赖
define(['require'], function(require) {
    'use strict';
    require(['http://date.jsontest.com/?callback=define'], function(data){
        console.log(data)
    });
});
  • 循环依赖
define(["require", "a"],
	function(require, a) {
    	// 如果 a.js 依赖了 b, 则此时 a、b 形成了循环依赖,a的值为空
        return function(title) {
        	// 调用 require 再次加载下 a
            return require("a").doSomething();
        }
    }
);
  • 取消模块的定义
requirejs.undef('moduleName');

猜你喜欢

转载自blog.csdn.net/zhanghui_hn/article/details/86567053
今日推荐