CommonJs模块化简明笔记

1、什么是模块化

模块化是指将一个复杂的程序依据一定的规则(规范)封装成几个块(文件),并进行组合在一起。

最早我们开发将所有的代码写在一个js文件中,随着需求越来越复杂,代码量越来越大,如果仍然把所有代码写在一个js文件中,那么代码耦合度过高不方便后期维护,模块化将一个复杂的js文件按共同或类似的逻辑拆分成多个js文件,拆封的文件内部数据是私有的,只是向外部暴露一些接口(方法)与其他模块通信,不仅方便找到某一块功能点的代码,也可以达到复用的效果。
模块化的核⼼思想就是:模块之间是隔离的,通过导⼊导出进⾏数据和功能的共享

2、为什么需要模块化

随着需求越来越复杂,代码量越来越大,会出现如下问题:

  • 全局污染问题(多个引入js相同变量名、方法名)
  • 依赖混乱问题(引入顺序,导致结果不同)
  • 数据安全问题 (js中的数据会全部暴露出来)

3、导入和导出的概念

在这里插入图片描述

4、示例

4.1 暴露(导出)方式一:

创建 user.js

const name = '张三'
const age = 18
function getAddress (){
	return '甘肃省兰州市城关区'
}  
//通过给exports对象添加属性的⽅式,来导出数据
exports.name = name
exports.age = age
exports.getAddress = getAddress

创建 index.js

// 引⼊user模块暴露的所有内容
const user = require('./user.js')

console.log(name)
console.log(age)
console.log(name)

在这里插入图片描述

4.2 暴露(导出)方式二:

创建 user.js

const name = '张三'
const age = 18
function getAddress (){
	return '甘肃省兰州市城关区'
}  
//通过给exports对象添加属性的⽅式,来导出数据
module.exports ={
    name,
    age,
    getAddress
}

运行结果与第一种一致。

4.3 三种导入方式

// 直接引⼊模块,使用时需要 user.name 的方式
const user = require('./user')

// 引⼊同时解构出要⽤的数据 , 使用时,直接使用变量名
const { name, age, getAddress } = require('./user')


// 引⼊同时解构+重命名
const {name:myName,age,getAddress:myAdd} = require('./user')
  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

藏蓝色攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值