模块化编程(一)浏览器端规范:AMD----requireJS

先明确模块化开发的目的。 模块化开发使代码耦合度降低,模块化的意义在于最大化的设计重用,以最少的模块、零部件,更快速的满足更多的个性化需求。因为有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块。

在模块化开发中每一个模块都是一个独立的JS文件

一.使用方式: 首先需要引入requireJS文件

<script type="text/javascript" src="lib/require.js"></script>

然后这个js函数中定义了三个全局函数 var requirejs, require, define; 其中requirejs===require 所以其实只有两个全局函数 define:定义模块,这个函数接收三个参数 第一个参数:(暂时未知用途) 第二个参数:需要依赖的模块列表,是一个数组 第三个参数:回调 详细说一下第三个参数 如果第三个参数是一个对象,那么在引入模块的时候就会返回这个对象 如果第三个参数是一个匿名函数,那么在引入模块的时候就会执行这个匿名函数,并返回这个函数的返回值

define(function () {
    console.log('123');
    var a={
        app:'app',
        show:function(){
            console.log(this.app);
        }
    };
    // return ['123','123'];
});

require:引入模块 第一个参数:需要依赖的列表,是一个数组 第二个参数:是在依赖都加载完成之后会运行的函数,这个函数的形参与前面依赖列表的返回值是对应的 第三四个参数:(暂时未知用途)

<script type="text/javascript">//这里是index.html
    require(['js/app'],function(a){
        console.debug(a);
    })
</script>

所有的依赖路径都是相对于这个index.html的,即使依赖的依赖也都是相对于这个index.html的

define(['js/app/a'],function () {
    console.log('app');
    return{
        app:'app',
        show:function(){
            console.log(this.app);
        }
    };
});

二.相关配置: baseUrl :所有模块的查找根路径。 paths :path映射那些不直接放置于baseUrl下的模块名。设置path时起始位置是相对于baseUrl的,除非该path设置以"/"开头或含有URL协议(如http:)。

<script type="text/javascript">
    require.config({
        baseUrl:'js/',
        paths:{
            jquery:['../lib/jquery-1.7.2','app/b']
        }
    });
    require(['app','jquery'],function(a,$){
        console.dir(a);
        console.dir($);
    })
</script>

这些配置代码可以放到一个JS文件中,然后像下面这样加载

<script data-main="scripts/main.js" src="scripts/require.js"></script>

转载于:https://my.oschina.net/u/2499097/blog/751231

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值