Requirejs和commonjs(requirejs模块化编程怎么理解)

2024-02-16 12:50:06 :70

requirejs和commonjs(requirejs模块化编程怎么理解)

大家好,今天小编来为大家解答以下的问题,关于requirejs和commonjs,requirejs模块化编程怎么理解这个很多人还不知道,现在让我们一起来看看吧!

本文目录

requirejs模块化编程怎么理解

一、Javascript模块化编程目前,通行的Javascript模块规范共有两种:CommonJS和AMD。1、commonjs2009年,美国程序员Ryan Dahl创造了node.js项目,将javascript语言用于服务器端编程,这标志”Javascript模块化编程”正式诞生。在浏览器环境下,没有模块也不是特别大的问题,毕竟网页程序的复杂性有限;但是在服务器端,一定要有模块,与操作系统和其他应用程序互动,否则根本没法编程。node.js的模块系统,就是参照CommonJS规范实现的。在CommonJS中,有一个全局性方法require(),用于加载模块。假定有一个数学模块math.js,就可以像下面这样加载。var math = require(’math’);然后,就可以调用模块提供的方法:var math = require(’math’);math.add(2,3); // 5因为这个系列主要针对浏览器编程,不涉及node.js,所以对CommonJS就不多做介绍了。我们在这里只要知道,require()用于加载模块就行了。2、AMDAMD是”Asynchronous Module Definition”的缩写,意思就是”异步模块定义”。它采用异步方式加载模块,模块的加载不影响它后面语句的运行。所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行。模块定义define(id?, dependencies?, factory);其中:id: 模块标识,可以省略。dependencies: 所依赖的模块,可以省略。factory: 模块的实现,或者一个JavaScript对象。模块加载AMD也采用require()语句加载模块,但是不同于CommonJS,它要求两个参数:require(, callback);第一个参数,是一个数组,里面的成员就是要加载的模块;第二个参数callback,则是加载成功之后的回调函数。如果将前面的代码改写成AMD形式,就是下面这样:require(, function (math) {math.add(2, 3);});math.add()与math模块加载不是同步的,浏览器不会发生假死。所以很显然,AMD比较适合浏览器环境。目前,主要有两个Javascript库实现了AMD规范:require.js和curl.js。本系列的第三部分,将通过介绍require.js,进一步讲解AMD的用法,以及如何将模块化编程投入实战。二、requirejs模块化编程require.js加载的模块,采用AMD(异步模块定义规范) 规范。也就是说,模块必须按照AMD的规定来写。require.js的两个重要的特点:1、实现js文件的异步加载,避免网页失去响应2、管理模块之间的依赖性,便于代码的编写和维护加载requirejs:《script src="js/require.js" data-main="js/main"》《/script》data-main属性的作用是,指定网页程序的主模块。在上例中,就是js目录下面的main.js,这个文件会第一个被require.js加载。由于require.js默认的文件后缀名是js,所以可以把main.js简写成main。main.js常见实例:require.config({ paths: { moduleA: ’’,moduleB:’’,moduleC:’’}});require(, function (moduleA, moduleB, moduleC){// some code here   });1、require.configrequire.config用来配置一些参数,它将影响到requirejs库的一些行为。require.config的参数是一个JS对象,常用的配置有baseUrl,paths等。这里配置了paths参数,使用模块名“jquery”,其实际文件路径jquery-1.7.2.js(后缀.js可以省略)。我们知道jQuery从1.7后开始支持AMD规范,即如果jQuery作为一个AMD模块运行时,它的模块名是“jquery”。注意“jquery”是固定的,不能写“jQuery”或其它。注:如果文件名“jquery-1.7.2.js”改为“jquery.js”就不必配置paths参数了。如果将jQuery应用在模块化开发时,其实可以不使用全局的,即可以不暴露出来。需要用到jQuery时使用require函数即可。2、require()函数require()函数接受两个参数。第一个参数是一个数组,表示所依赖的模块,上例就是,即主模块依赖这三个模块;第二个参数是一个回调函数,当前面指定的模块都加载成功后,它将被调用。加载的模块会以参数形式传入该函数,从而在回调函数内部就可以使用这些模块。

amd,cmd和commonjs的异同

commonjs是用在服务器端的,同步的,如nodejs amd, cmd是用在浏览器端的,异步的,如requirejs和seajs

OK,关于requirejs和commonjs和requirejs模块化编程怎么理解的内容到此结束了,希望对大家有所帮助。

requirejs和commonjs(requirejs模块化编程怎么理解)

本文编辑:admin
Copyright © 2022 All Rights Reserved 威海上格软件有限公司 版权所有

鲁ICP备20007704号

Thanks for visiting my site.