Kevin's blog Kevin's blog
首页
  • Java基础
  • Java高级
  • MySQL
  • JDBC
  • Java 8新特性
  • 原生Servlet
  • 延迟队列
  • 分布式事务
  • ActiveMQ
  • Elasticsearch
  • Stream API
  • Redis 实战(黑马程序员)
  • Redis 课程(尚硅谷)
  • Redis数据类型和常用命令
  • 版本控制
  • Spring Framework
  • Spring MVC Framework
  • MyBatis Framework
  • MyBatis Plus Framework
  • Spring Boot Framework
  • 韩顺平 Spring Boot Framework
  • 在线教育
  • 谷粒商城 - 分布式基础 高级 集群
  • 谷粒商城 - 详细开发文档
  • docker基础
  • docker-compose容器编排
  • docker swarm集群管理
  • Vue2基础
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Kevin

Java系统笔记
首页
  • Java基础
  • Java高级
  • MySQL
  • JDBC
  • Java 8新特性
  • 原生Servlet
  • 延迟队列
  • 分布式事务
  • ActiveMQ
  • Elasticsearch
  • Stream API
  • Redis 实战(黑马程序员)
  • Redis 课程(尚硅谷)
  • Redis数据类型和常用命令
  • 版本控制
  • Spring Framework
  • Spring MVC Framework
  • MyBatis Framework
  • MyBatis Plus Framework
  • Spring Boot Framework
  • 韩顺平 Spring Boot Framework
  • 在线教育
  • 谷粒商城 - 分布式基础 高级 集群
  • 谷粒商城 - 详细开发文档
  • docker基础
  • docker-compose容器编排
  • docker swarm集群管理
  • Vue2基础
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 项目 在线教育

    • 项目简介

    • Mybatis Plus入门

    • 课程中心微服务搭建

    • 前后端分离相关知识

      • Node.js入门
      • NPM包管理器
      • Babel
      • 模块化
        • 一、模块化简介
          • 1、模块化产生的背景
          • 2、什么是模块化开发
        • 二、CommonJS模块规范
          • 1、创建“module”文件夹
          • 2、导出模块
          • 3、导入模块
          • 4、运行程序
        • 三、ES6模块化规范
          • 1、导出模块
          • 2、导入模块
          • 3、初始化项目
          • *4、配置 .babelrc*
          • 5、安装转码器
          • 6、定义运行脚本
          • 7、执行命令转码
          • 8、运行程序
        • 四、ES6模块化的另一种写法
          • 1、导出模块
          • 2、导入模块
      • Webpack
      • Vue.js补充_2
      • element-ui
      • Easy Mock
      • vue-element-admin
      • 附件01-编码规范
      • 附件02-Node.js图书管理系统开发流程
    • 后台管理系统前端页面的搭建

    • 整合阿里云OSS文件上传

    • 使用POI实现Excel导入导出

    • 整合POI实现课程类目管理

    • 课程基本信息管理

    • 课程章节信息管理

    • 课程课时管理

    • 使用阿里云视频点播

    • 媒资管理

    • spring cloud服务发现和服务调用

    • 整合ECharts实现统计分析

    • 服务端渲染NUXT

    • 整合阿里云播放器

    • 微服务安全

    • 整合微信登录

    • spring cloud zuul 微服务网关在项目中的应用

    • 总结

  • 项目 谷粒商城

  • 项目 谷粒商城详细开发文档

  • Project
  • 项目 在线教育
  • 前后端分离相关知识
zhihuanwang
2023-09-25
目录

模块化

# 一、模块化简介

# 1、模块化产生的背景

随着网站逐渐变成"互联网应用程序",嵌入网页的Javascript代码越来越庞大,越来越复杂。

img

Javascript模块化编程,已经成为一个迫切的需求。理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。

但是,Javascript不是一种模块化编程语言,它不支持"类"(class),包(package)等概念,更遑论"模块"(module)了。

# 2、什么是模块化开发

传统非模块化开发有如下的缺点:

  • 命名冲突
  • 文件依赖

模块化规范:

  • CommonJS模块化规范
  • ES6模块化规范

# 二、CommonJS模块规范

每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。

# 1、创建“module”文件夹

# 2、导出模块

创建 common-js模块化/四则运算.js

// 定义成员:
const sum = function(a,b){
    return parseInt(a) + parseInt(b)
}
const subtract = function(a,b){
    return parseInt(a) - parseInt(b)
}
const multiply = function(a,b){
    return parseInt(a) * parseInt(b)
}
const divide = function(a,b){
    return parseInt(a) / parseInt(b)
}
1
2
3
4
5
6
7
8
9
10
11
12
13

导出模块中的成员

// 导出成员:
module.exports = {
    sum: sum,
    subtract: subtract,
    multiply: multiply,
    divide: divide
}
1
2
3
4
5
6
7

简写

//简写
module.exports = {
    sum,
    subtract,
    multiply,
    divide
}
1
2
3
4
5
6
7

# 3、导入模块

创建 common-js模块化/引入模块.js

//引入模块,注意:当前路径必须写 ./
const m = require('./四则运算.js')
console.log(m)

const result1 = m.sum(1, 2)
const result2 = m.subtract(1, 2)
console.log(result1, result2)
1
2
3
4
5
6
7

# 4、运行程序

node common-js模块化/引入模块.js
1

CommonJS使用 exports 和require 来导出、导入模块。

# 三、ES6模块化规范

ES6使用 export 和 import 来导出、导入模块。

# 1、导出模块

创建 es6模块化/userApi.js

export function getList() {
    console.log('获取数据列表')
}

export function save() {
    console.log('保存数据')
}
1
2
3
4
5
6
7

# 2、导入模块

创建 es6模块化/userComponent.js

//只取需要的方法即可,多个方法用逗号分隔
import { getList, save } from "./userApi.js"
getList()
save()
1
2
3
4

注意:这时的程序无法运行的,因为ES6的模块化无法在Node.js中执行,需要用Babel编辑成ES5后再执行。

# 3、初始化项目

npm init -y
1

# *4、配置 .babelrc*

{
    "presets": ["es2015"],
    "plugins": []
}
1
2
3
4

# 5、安装转码器

在项目中安装

npm install --save-dev babel-preset-es2015
1

#

#

# 6、定义运行脚本

package.json中增加"build-m":

{
    // ...
    "scripts": {
        "build-m": "babel es6模块化 -d es6模块化-dist"
    }
}
1
2
3
4
5
6

# 7、执行命令转码

npm run build-m
1

# 8、运行程序

node es6模块化-dist/userComponent.js
1

# 四、ES6模块化的另一种写法

# 1、导出模块

创建 es6模块化/userApi2.js

export default {
    getList() {
        console.log('获取数据列表2')
    },

    save() {
        console.log('保存数据2')
    }
}
1
2
3
4
5
6
7
8
9

# 2、导入模块

创建 es6模块化/userComponent2.js

import user from "./userApi2.js"
user.getList()
user.save()
1
2
3
编辑 (opens new window)
上次更新: 2024/06/15, 15:12:25
Babel
Webpack

← Babel Webpack→

最近更新
01
04.Spring Boot 韩顺平
10-12
02
day14
08-29
03
day09
08-29
更多文章>
Theme by Vdoing | Copyright © 2019-2025 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式