首页 > Web开发 > 详细

NodeJS模块化写法

时间:2017-02-16 23:05:21      阅读:281      评论:0      收藏:0      [点我收藏+]

    NodeJS

对于写在HTML页面里的JS,浏览器充当了解析器的角色。而对于需要独立运行的JS,NodeJS就是一个解析器.

NodeJS的作者说,他创造NodeJS的目的是为了实现高性能Web服务器,他首先看重的是事件机制和异步IO模型的优越性,而不是JS.

    模块化 模块就是实现特定功能的一组方法。只要把不同的函数(以及记录状态的变量)简单地放在一起,就算是一个模块。简单理解为封装

下述两种写法等价

技术分享

   exports 对象是当前模块的导出对象,用于导出模块公有方法和属性。别的模块通过require函数使用当前模块时得到的就是当前模块的exports对象

//声明一个函数
var math = function(a, b) {
    return a+b;
}
/*
 * exports对象是当前模块的导出对象,用于导出模块公有方法和属性。
 * 别的模块通过require函数使用当前模块时得到的就是当前模块的exports对象
 */
exports.math = math;

   require  require函数用于在当前模块中加载和使用别的模块,传入一个模块名,返回一个模块导出对象。

技术分享

 (说明:NodeJS与requireJS区别 NodeJS没有最外层的Wrapper包装  define(function(require, exports){}))

   requireJS写法

/*
 * 选项卡切换功能模块
 * Author: Avenstar
 * 2017/2/16
 * 
 * require函数用于在当前模块中加载和使用别的模块,传入一个模块名,返回一个模块导出对象。
 * exports对象是当前模块的导出对象,用于导出模块公有方法和属性。
 * 别的模块通过require函数使用当前模块时得到的就是当前模块的exports对象。
 */
define(function(require, exports){
	
	//声明一个switchTab对象
	var switchTab = {};

    //初始化
	switchTab.initMain = function(){
		//初始化事件
		switchTab.init_event();
	}

	//初始化
	switchTab.init_event = function(){
		var $menuTab = $(‘#switch-tab‘),
		    $tabCont = $(‘.switch-tab-content‘).find(".tab-content");
		$menuTab.on(‘click‘, ‘li‘, function(e){
			var $that = $(this),
			    target = $that.attr("target"); //对目标内容
			//添加样式
			$that.addClass(‘active‘).siblings().removeClass(‘active‘);
			$tabCont.each(function(){
				var $_that = $(this),
				    tabTarget = $_that.attr(‘data-target‘); //选项卡对应内容
				if(target == tabTarget){ //选项卡与目标元素对应
					$_that.removeClass(‘hide‘);
				}else{
					$_that.addClass(‘hide‘);
				}
			})
		})
	}
	
    //暴露switchTab方法
	exports.init = switchTab.initTab;
})

【资料参考】

  https://cnodejs.org/getstart

  http://www.ruanyifeng.com/blog/2012/10/javascript_module.html

  http://www.ruanyifeng.com/blog/2012/10/asynchronous_module_definition.html

  http://www.ruanyifeng.com/blog/2012/11/require_js.html

  

NodeJS模块化写法

原文:http://www.cnblogs.com/zjf-1992/p/6403111.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!