zoukankan      html  css  js  c++  java
  • requirejs实验001.对我来说,用AMD的方式来组织代码并不轻松.

    http://www.requirejs.org/

    http://www.requirejs.cn/

    http://requirejs.readthedocs.org/en/1.0.1/

    目录结构:

    |-root
        |-demo
            |-js
                |-a.1.0.js
                |-a.1.1.js
                |-b.js
                |-c.js
                |-main.js
                |-util.js
            |-index.html
        |-libs
            |-requirejs
                |-require.js

    文件下载

    命名及代码都是随意写的,只为学习requirejs的写法.熟悉requirejs的用法.

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>requirejs demo</title>
    	<style>
    		div {
    			padding: 5px 10px;
    		}
    	</style>
    	<script type="text/javascript" src="../libs/requirejs/require.js" data-main="./js/main.js"></script>
    </head>
    <body>
    	 <div id="Main" style="600px;height:400px;border:1px red solid;"></div>
    </body>
    </html>
    
    //main.js
    require.config({
    	baseUrl: 'js', // or ./js //baseUrl是从index.html开始计算的.
    	map: {
    		'b': {
    			'a': 'a.1.0'
    		},
    		'c': {
    			'a': 'a.1.1'
    		}
    	}
    });
    
    require(['b','c'], function(b, c){
    	b();
    	c();
    });
    
    //a.1.0.js
    define([], function(){
    	function add(a, b){
    		return a+b;
    	}
    	function mul(a, b){
    		return a*b;
    	}
    	return {
    		'add': add,
    		'mul': mul
    	}
    });
    
    //a.1.1.js
    define([], function(){
    	function add(a, b){
    		return a+b+1000;
    	}
    	function mul(a, b){
    		return a*b*100;
    	}
    	return {
    		'add': add,
    		'mul': mul
    	}
    });
    
    //b.js
    define(['a', 'util'], function(aa, util){
    	function test(a, b){
    		util.log('Main', 'add: ' + aa.add(a, b));
    		util.log('Main', 'mul: ' + aa.mul(a, b));
    	}
    	return function(){test.call(this, 2, 3)};
    });
    
    //c.js
    define(['a', 'util'], function(aa, util){
    	function test(a, b){
    		util.log('Main', 'add: ' + aa.add(a, b));
    		util.log('Main', 'mul: ' + aa.mul(a, b));
    	}
    	return function(){test.call(this, 2, 3)};
    });
    
    //util.js
    define([], function(){
    	// var __id = '';
    	// var __tar = null;
    	// function setId(id){
    		// __id = id;
    	// }
    	// function _getEl(){
    		// return document.getElementById(__id);
    	// }
    	function log(id, content){
    		//var tar = __tar || __tar = _getEl();
    		var tar = document.getElementById(id);
    		var old = tar.innerHTML;
    		tar.innerHTML = old + '<br>' + content;
    	}
    	return {
    		'log': log
    	};
    });
    

    开始时,把paths理解为map了.后来出现错误,再去查API时才发现.(而且将paths误写成了path)

    开始时,我在b.js和c.js中都写了require.config({...}),并将path(s)分别设置为 'a': 'a.1.0' 和 'a': 'a.1.1' <- 这显然是错误. 

    最开始时baseUrl也配置错误了.截图下来了.

  • 相关阅读:
    14个你可能不知道的JavaScript调试技巧
    数据库设计四步骤
    mac 卸载 jdk
    node版本管理
    mysql order by limit 问题
    计算机一些基本概念的认识
    SQL设置主外键关联时报错
    阻止表单autocomplete
    常见字符编码
    编程语言分类
  • 原文地址:https://www.cnblogs.com/juedui0769/p/5087607.html
Copyright © 2011-2022 走看看