前端模块化开发
创始人
2024-03-20 16:04:04
0

1.模块化产生的背景

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

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

2.什么是模块化开发

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

  • 命名冲突
  • 文件依赖

模块化规范:

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

3.CommonJS模块规范 

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

①创建model文件夹,在该文件夹下创建es5文件夹然后分别创建1.js导出文件以及2.js导入文件

// 1.js导出文件
// 定义成员:
const sum = function(a,b){return parseInt(a) + parseInt(b)
}
const subtract = function(a,b){return parseInt(a) - parseInt(b)
}//导出成员
module.exports = {sum,subtract
}
//2.js导入文件
//引入模块,注意:当前路径必须写./
const m = require('./1.js')
console.log(m)const result1 = m.sum(1,2)
const result2 = m.subtract(1,2)
console.log(result1,result2)

②执行结果如下

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

 4.ES6模块化规范

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

①在model文件夹下创建es6文件夹,然后再该文件夹下创建1.js导出文件和2.js导入文件

// 1.js导出文件
export function getList(){console.log("查询数据列表...")
}
export function save(){console.log("保存数据...")
}
// 2.js导入文件
import {getList,save} from "./01.js"
getList()
save()

创建成功后,在终端使用node执行该命令,结果会报下面的错误

这个错误不是es6语法的错误,是因为node不支持es6规范导致的,所以我们需要使用babel工具进行转码工作,将es6的js文件转为es5的文件,转码命令如下,改babel的命令就是将es6文件夹下的所有js文件全部转换为es5文件夹下的js文件

 

babel es6 -d es5

 

 最终的执行结果如下

所以使用node工具将es6规范的js文件转换为es5规范的js文件在进行执行

相关内容

热门资讯

汽车油箱结构是什么(汽车油箱结... 本篇文章极速百科给大家谈谈汽车油箱结构是什么,以及汽车油箱结构原理图解对应的知识点,希望对各位有所帮...
美国2年期国债收益率上涨15个... 原标题:美国2年期国债收益率上涨15个基点 美国2年期国债收益率上涨15个基...
嵌入式 ADC使用手册完整版 ... 嵌入式 ADC使用手册完整版 (188977万字)💜&#...
重大消息战皇大厅开挂是真的吗... 您好:战皇大厅这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...
盘点十款牵手跑胡子为什么一直... 您好:牵手跑胡子这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游...
senator香烟多少一盒(s... 今天给各位分享senator香烟多少一盒的知识,其中也会对sevebstars香烟进行解释,如果能碰...
终于懂了新荣耀斗牛真的有挂吗... 您好:新荣耀斗牛这款游戏可以开挂,确实是有挂的,需要了解加客服微信8435338】很多玩家在这款游戏...
盘点十款明星麻将到底有没有挂... 您好:明星麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【5848499】很多玩家在这款游戏...
总结文章“新道游棋牌有透视挂吗... 您好:新道游棋牌这款游戏可以开挂,确实是有挂的,需要了解加客服微信【7682267】很多玩家在这款游...
终于懂了手机麻将到底有没有挂... 您好:手机麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...