javascript - CommonJS 或 ES6 模块的意义何在?
问题描述
这对我来说听起来很愚蠢,但我真的没有答案。
如果您可以通过脚本标签将多个 js 文件连接到 html 以便它们充当模块(共享相同的范围),那么使用 ES6 模块或 CommonJS(在使用 browserifiy 的浏览器中)有什么意义?
解决方案
在规模不错的 Web 应用程序中,您必须考虑到不止一个开发人员在从事该项目,因此关注点分离是开发可维护应用程序的关键要素之一,让我们来看看下一个假场景:
您的 Web 应用程序中有一个名为 library.js 的文件。ES2015 模块语法
export function calculatesquareArea(object) {
// code that calculates area
}
export function calculateVolume(object){
// code that calculates volume
}
现在我们通过执行以下操作将此模块导入到我们的代码中:
import { calculatesquareArea } from 'library'
// We log the output of the execution of calculatesquareArea
console.log( calculateSquareArea(object))
您会立即注意到,在我的模块中,我有 2 个函数,但我决定只导入一个,因为当时我只需要使用它。也许这是一个愚蠢的例子,但您可以利用 CommonJS 或 ES6 模块的模块化特性来描绘代码重用。
这里有一篇关于 CommonJS 和 ES2015 模块之间主要区别的更详细的文章
希望这会有所帮助。
推荐阅读
- parquet - PyArrow read_table 过滤空值
- vue.js - 使用 v-for 在 v-select 中循环选项值,是否可行?
- nginx - Nginx 从子文件夹重定向到该子文件夹的文件夹
- php - 如何使用ajax在jQuery post中获取隐藏的关联数组字段值
- java - 找不到匹配的 bean - `dispatcher-servlet.xml` 文件中的 Spring 错误
- svelte - 嵌套布局上的 Svelte Routing 404
- python - 如何根据条件加入数组元素?
- laravel - Laravel foreach 没有关闭
- scala - 未设置线性回归特征
- sql - PostgreSQL SQL 的触发器和重复问题