Node.js学习(1)模块化

JS模块化

  • 什么是模块?
    • 将一个复杂的程序依据一定的规则(规范)封装成几个块(文件), 并进行组合在一起
    • 块的内部数据/实现是私有的, 只是向外部暴露一些接口(方法)与外部其它模块通信
  • 为什么要模块化?
    • 部署简单
    • 降低复杂度,提高解耦性
    • 避免命名冲突(减少命名空间污染)
    • 更好的分离, 按需加载
    • 更高复用性,高可维护性

模块化规范

现在比较流行的模块化规范有以下几种:CommonJS, AMD, ES6, CMD

CommonJS

  • 特点:
    • 每个文件都可当作一个模块
    • 在服务器端: 模块的加载是运行时同步加载的
    • 在浏览器端: 模块需要提前编译打包处理

基本语法

暴露模块 引入模块
module.exports = 要暴露的内容 第三方模块:require(xxx),xxx为模块名
exports.xxx = 要暴露的内容 自定义模块:require(xxx), xxx为模块文件路径

实现

服务器端 浏览器端
Node.js Browserify(CommonJs的打包工具)
Node.js运行时动态加载模块(同步) Browserify是在转译(编译)时就会加载打包(合并)require的模块

具体实现教程

http://www.884358.com/md/nodejs/02

ES6

概念

https://es6.ruanyifeng.com/#docs/module

基本语法

  • 1) 暴露模块: export
      1. 分别暴露:export 暴露内容
      1. 统一暴露:export {xxx, yyy}
      1. 默认暴露:export defalut 暴露内容
  • 2) 引入模块: import
      1. import {xxx,yyy} from ‘./module1’
      1. import module3 from ‘./module3’

实现

  • 浏览器端
    • 使用Babel将ES6编译为ES5代码
    • 使用Browserify编译打包js

具体实现教程

http://www.884358.com/md/nodejs/03

发表评论

邮箱地址不会被公开。 必填项已用*标注