个人博客 个人博客
首页
  • 前端
  • 后端
  • Git
  • Docker
  • 网络
  • 操作系统
工具
阅读
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

董先亮

前端react开发
首页
  • 前端
  • 后端
  • Git
  • Docker
  • 网络
  • 操作系统
工具
阅读
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • HTML

  • CSS

  • JavaScript

    • 防抖与节流
    • 本地存储
    • PWA
    • 地理位置
    • 对象 Object
    • 事件坐标详解
    • 常用函数
    • class类
    • Array 数组
    • 其他
    • blob下载文件
    • 深度克隆
    • 模块化
      • CommonJS
      • AMD 与 CMD
      • ES Module
        • script标签中使用
        • 与commonjs区别
        • node环境使用esmodule
    • 常用工具函数
    • 拖拽
    • Map与Set
  • TypeScript

  • 前端基础
  • JavaScript
NeverStop1024
2022-11-15
目录

模块化

NKyc4t_XAG9QU

# CommonJS

CommonJS是同步加载,浏览器端使用会造成阻塞,服务端使用commonjs的原因是因为资源本身存储在服务器上,不用担心网络问题,读取磁盘文件也比较快。

// module.js
module.exports = {
    name:'banana',
    age:18,
    eat:function(){
        console.log('I like eating bananas')
    }
}
module.exports.userName = 'admin'
1
2
3
4
5
6
7
8
9
// app.js
const obj = require('./module.js')
console.log(obj) // { name: 'banana', age: 18, eat: [Function: eat], userName: 'admin' }

// 如果只想导入某个属性,可以使用解构赋值
const { name } = require('./module')
console.log(name) // 'banana'
1
2
3
4
5
6
7

# AMD 与 CMD

AMD使CommonJS规范可以异步加载,也就可以在浏览器使用了,但是规范成本高

# ES Module

// module.js
const obj = {
    name:'banana',
    age:18,
    eat:()=>{
        console.log('I like eating bananas')
    }
}
const userName = 'admin'

export { obj,userName }
1
2
3
4
5
6
7
8
9
10
11
// app.js
import { obj,userName } from './module.js'
1
2

# script标签中使用

给script标签添加 type="module" 属性

# 与commonjs区别

  • commonjs是拷贝,import是引用

# node环境使用esmodule

node8.0以后就支持了

编辑 (opens new window)
上次更新: 2022/11/20
深度克隆
常用工具函数

← 深度克隆 常用工具函数→

最近更新
01
mock使用
07-12
02
websocket即时通讯
07-12
03
前端面试题
07-09
更多文章>
Theme by Vdoing | Copyright © 2022-2023 NeverStop1024 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式