node.js 模块化

1.模块化有助于生产效率,方便以后维护的

2.非模块化带来的问题在于命名冲突和文件依赖,不能设置似有成员

3.seajs(懒加载)

  • 导入seajs
  • define() 定义一个模块,define的回调的三个参数名字不可更改
define(function (require, exports, module) {});
  • exports或者module.exports将模块中的成员暴露出来
  • seajs.use 使用一个模块
  • config() 配置一些基本信息(别名、路径)
define(function (require, exports, module) {
    module.exports={
        add:function(a,b){
        return parseInt(a) + parseInt(b)
    },
        mul:function(a,b){
            return parseInt(a) - parseInt(b)
        }
    }
});

<script src="scripts/sea-debug.js"></script>
<script>
    seajs.use("seajs.js", function (obj) {
        console.log(obj.add(5,6));

        console.log(obj.mul(5,6));
    });
</script>
require引入另一个模块(基于seajs.js的位置)exports输出单个module.exports输出时对象

HTML页面中的config作用是为了简化调用模块
seajs.config({
        //设置路径
        base: "modules/demo4",
        //设置别名
        alias: {
            c: "calc",
            p: "power"
        }
    });

  


  • seajs原理

      function loadJS(path, callback) {
                var head = document.getElementsByTagName("head")[0];
                var node = document.createElement("script");
                node.src = path;
                head.appendChild(node);
                //浏览器兼容处理
                var supportOnload = "onload" in node;
                if(supportOnload) {
                    node.onload = function () {
                        callback();
                    }
                }else{
                    node.onreadystatechange = function () {
                        if(node.readyState == "loaded" || node.readyState == "complete") {
                            callback();
                        }
                    }
                }
            }
    
            //调用
            loadJS("js/test.js", function () {
                test();
            })
    

      

  • 模块化框架requireJS(预加载)

  • seajs遵守CMD规范
  • CMD规范的地址 https://github.com/seajs/seajs
  • CMD规范的特点 所有的require()都是懒加载模式,用到的时候才去加载,提升初始化时加载的性能
  • requirejs遵守AMD规范 requirejs官网 http://www.requirejs.org/
  • AMD规范的地址
  • AMD规范的特点 所有的require()都是一个预加载模式
				
时间: 2024-10-20 01:47:16

node.js 模块化的相关文章

Node.js模块化教程

Node.js模块化教程 下载安装node.js 创建项目结构 |-modules |-module1.js |-module2.js |-module3.js|-app.js|-package.json {   "name": "commonJS-node",   "version": "1.0.0" } 下载第三方模块 npm install uniq --save 模块化编码 module1.js module.expo

鼓捣phantomjs(二) node.js模块化集成

著作权所有:http://www.cnblogs.com/zeusro/ 引用(爬虫)不给稿费的,切你jj 一.追忆似屎年华 在上一篇post(http://www.cnblogs.com/zeusro/p/4185196.html)里面,我留下了3个坑没有填平. 2模块化 加载到nodejs里面,用于批量采集. 方法:把变动的参数做成 3淘宝的反采集 4数据的持久化 其实呢,还有一个,就是中文编码的问题, 那么今天把其中2个解决了.持久化给个思路,反采集就算了,哥已经宣布弃坑了. 二.正文 2

从node.js模块化开发来了解javascript闭包

之前看过很多关于javascript闭包的解释,只有短短几个demo,一大段晦涩难懂的介绍,巴拉巴拉一大段闭包的概念,但是到最后也没看懂闭包到底是什么意思,起什么作用,直到昨晚凌晨,我在学习node.js模块开发的时候,才突然恍然大悟,所以赶紧记下来,免得以后忘记.代码来源:廖雪峰的网站node.js教程. 直接上代码: 我们首先编写了一个hello.js文件,这个hello.js文件就是一个模块,模块的名字就是文件名(去掉.js后缀),所以hello.js文件就是名为hello的模块. 我们把

node.js模块化写法入门

子模块的写法: function SVN(){ console.log('svn initialized'); return this; } function getInstance() { console.log('getInstance'); return new SVN(); } module.exports = SVN; module.exports.getInstance = getInstance; 这里定义了一个模块叫SVN,可以通过两种方式把这个模块的方法公开给外界调用. 一个是

node.js的模块化开发

node.js的代码都是构建在模块化开发的基础之上,模块化开始也是node.js的核心之一. 传统非模块化开发的缺点:1.命名冲突   2.文件依赖 标准的模块化规范: 1.AMD -requirejs 2.CMD- seajs 模块化的规范定义的一些写代码的规则,只要遵循了同样的标准,基本上风格都是一致的 服务端的模块化规范: 1.Common.js  -Node.js 模块化相关的规则: 1.一个js文件 都是一个独立的模块,模块内部的成员都是相互独立的 2.模块化的导入和导出 案例1(ex

Node.js基础:第二篇

目录 第一章:Node.js模块化开发 1.1-JavaScript开发弊端 1.2-模块化开发的好处 1.3-Node.js中模块化开发规范 1.4-模块内成员的导入和导出 1.5-导出的第二种方式 第二章:系统模块 2.1-什么是系统模块 2.2-系统模块fs文件操作 2.3-相对路径和绝对路径 2.4-系统模块path 路径操作 第三章:第三方模块 3.1-什么是第三方模块 3.2-获取第三方模块 3.3-第三方模块 nodemon 3.4-第三方模块 nrm 3.5-第三方模块 Gulp

Node.js中的模块化

每天一篇文章来记录记录自己的成长吧.大二,该静心了.加油~ 好了,废话不多说,今天说说nodejs中的模块化.(注:此文为自己对书nodejs实战的总结) nodejs一个重要的特性就是模块化,模块就是node.js对常用功能进行分组的方式.而且,node无需真正辨别模块到底是我们自己编写的还是从外部仓库中获取的.这样我们只需要一个额外的json文档和一两行代码,我们就能引用别人的代码或者别人引用我们的代码,是不是很酷~. 好,下面我们来编写一个简单的模块: exports.hello_worl

node.js入门学习(四)--Demo模块化改造

1.node.js中模块的分类 1)node.js内置模块(核心,原生) 所有内置模块在安装node.js时就已经编译成二进制文件,可以直接加载运行(速度较快),部分内置模块,在node.exe这个进程启动时就已经默认加载了,可以直接使用. 2)文件模块 require(./common.js); // 去当前js文件的路径下找commom.js文件并导入执行.如果导入时没有指定文件后缀require(./commom),那么就按照commom.js,common.json,commom.nod

理解Node.js安装及模块化

1.安装Node Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效. Node.js 的包管理器 npm(Node Package Manage),是全球最大的开源库生态系统. 中文网:http://nodejs.cn/英文网:https://nodejs.org 2.REPL(交互式解释器) REPL(Read Eval Print Loop:交互式解释器),表示一个电脑的环境