CommonJS的由来
早期没有模块化思想的时候,代码写得不好,导致代码很多,逻辑重复,缺乏组织,管理维护困难,这也让很多开发者头疼。随着JavaScript社区的发展,社区针对JavaScript制定了相应的规范,CommonJS规范得到了认可并广泛使用。 2009年,CommonJS诞生了。
CommonJS介绍
CommonJS实现了Javascript的模块化规范,规范了模块的特性以及模块之间的相互依赖关系,使得代码更好的编写和维护,提高了代码的复用性。每个文件都被定义为一个模块(模块变量代表当前模块)并具有自己的作用域。每个文件中定义的变量、函数和类都是私有的,对其他模块不可见。模块的exports属性是对外的接口,只有通过exports导出的属性才能被加载和识别。 Node是基于CommonJS规范实现的。因为CommonJS规范的加载模块是同步的,而且服务器中的Node模块是直接存储在服务器本地硬盘中的,所以加载速度自然更快。可以说node项目是目前最好的CommonJS规范。实际应用。
require
require 是Node 的内置函数,用于加载模块文件。 require函数可以读取并执行一个JavaScript文件,然后返回模块的exports对象。 module.exports 变量(用于导出模块)和require 函数(用于导入模块)是CommonJS 定义的两个主要概念。 module.exports属性代表当前模块的外部输出接口。当其他文件通过require 函数加载模块时,实际上是读取module.exports 中的变量。
ECMAScript 6 (简称ES6)
ECMAScript是(欧洲计算机制造商协会脚本)的缩写。它是ECMA国际标准化定制的JavaScript脚本语言标准化规范。 ECMAScript 6是ECMA于2015年发布的JavaScript规范标准,它解决了ES5的许多固有缺陷,并引入了模块化的思想。 ES6模块的设计思想是尽可能静态,这样模块的依赖关系和输入输出变量就可以在编译时确定。
import
import是ES6中的语法标准,用于加载模块文件。 import函数可以读取并执行一个JavaScript文件,然后返回模块的export命令指定的代码输出。导出和导出默认值都可用于导出常量、函数、文件和模块。可以有多个导出,但只能有一个默认导出。
require与import的区别
1. require是CommonJS规范的模块化语法,import是ECMAScript 6规范的模块化语法;
2. require在运行时加载,import在编译时加载;
3. require可以写在代码的任何地方,而import只能写在文件顶部,不能用在条件语句或函数作用域中;
4、require通过module.exports导出的值不能改变,但是import通过export导出的值可以改变;
5; require通过module.exports导出exports对象,import导出指定输出的代码;
6、模块的属性是在运行require时引入的,所以性能比较低。模块的属性是在编译import时引入的,所以性能稍高一些。
require的使用
定义模块: module变量代表当前模块,其exports属性为外部接口。模块可以通过exports从模块中导出。从其他文件加载模块实际上意味着读取module.exports 变量。它们可以是变量、函数、对象等。如果你在node中使用exports导出,系统会帮你转换为module.exports,但是你需要定义导出的导出名称。
加载模块:require方法用于加载后缀为js的模块文件。如果参数字符串以“/”开头,则表示加载绝对路径的模块文件。如果参数字符串以“./”开头,则表示加载绝对路径的模块文件。对于具有相对路径的模块文件,模块会同步加载,并按照JavaScript 运行时查找它们的顺序进行处理。
import的使用
定义模块:可以在模块中使用export关键字从模块中导出变量、对象、函数、类等,然后通过import语句使用它们。一个模块中只能有一个默认导出export default,但可以有多个导出。
加载模块:导入加载模板可以有多种形式,可以加载为整个模块的内容、单个接口、多个接口、带别名的接口、默认值等。这样就可以按需加载模块模块并且可以提高代码的性能。
标题:Vue实战060:require和import的区别及使用
链接:https://www.7kxz.com/news/sypc/40408.html
版权:文章转载自网络,如有侵权,请联系删除!
用户评论
游戏体验很好,让我深入理解了在 Vue.js 中 `require` 和 `import` 的差别。
有16位网友表示赞同!
<strong>非常实用!</strong>通过这个教程,我能够将之前困扰我的难题迎刃而解。
有15位网友表示赞同!
学会了如何更高效地导入组件和模块,现在我的代码看起来更加整洁有序。
有15位网友表示赞同!
对 Vue 的依赖管理有了全新的认识,在实际项目中应用起来顺畅很多。
有17位网友表示赞同!
看了这个教程后,我对前端框架的认知又提升了一个台阶。
有11位网友表示赞同!
学习了 `require` 和 `import` 后,明显感觉在处理库和模块时更加得心应手。
有16位网友表示赞同!
<em>Note: </em> 游戏让我对 Vue 的生态系统有了更深的理解,不再是门外汉。
有16位网友表示赞同!
这个课件超有帮助的!那些细节之前完全没注意到,现在一目了然。
有19位网友表示赞同!
在用 `Vue` 进行项目开发时,这些讲解真是如获至宝。感谢分享!
有17位网友表示赞同!
看完这段教学之后,我觉得自己对 `require` 和 `import` 的实践运用更加自信了。
有17位网友表示赞同!
这种学习方式非常适合我这样的自学狂热者。
有19位网友表示赞同!
这个教程是我Vue之旅的一个重要里程碑,感觉像解锁了一个新技能!
有15位网友表示赞同!
<strong>理解区别很重要:</strong> 这些课程不仅教给我们知识,还让我们学会如何更好地应用它。
有16位网友表示赞同!
对 Vue 的基础构建模块有了更深入的理解。非常满意这次的体验。
有20位网友表示赞同!
这个环节让我认识到选择合适代码导入方法的重要性。
有18位网友表示赞同!
看了教程后的实践操作简直太爽了!感觉学习路径更加清晰明了。
有13位网友表示赞同!
对我来说,这段讲解不仅仅是理论知识,更是对 Vue 实战能力的一次提升。
有9位网友表示赞同!
我对 `require` 和 `import` 的运用技巧有显著进步。非常感谢作者的精心制作。
有20位网友表示赞同!
这个指南真的是游戏化的学习,让人不觉得枯燥,还收获满满的知识。
有17位网友表示赞同!
从这个游戏中,我不仅明白了代码逻辑,还感受到了 Vue 语言的魅力。
有12位网友表示赞同!