require/exports 和 import/export 区别
零、区别
1、require/exports 是 CommonJS 的标准,适用范围如 Node.js
2、import/export 是 ES6 的标准,适用范围如 React
一、间接获取对象
(1)require/exports
module.js
exports.name = "colin";
exports.sayHello = function() {
console.log("hello");
};
方法一 间接
getModule.js
var myModule = require('./module');
console.log(myModule.name);
myModule.sayHello();
方法二 直接
getModule.js
var { name, sayHello } = require('./module');
console.log(name);
sayHello();
方法三 别名
getModule.js
var { name: name_2, sayHello: sayHello_2 } = require('./module');
console.log(name_2);
sayHello_2();
(2)import/export
module.js
export const name = 'colin';
export function sayHello(){
console.log("hello");
}
方法一 间接 (不可用)
getModule.js
import myModule from './module'
console.log(myModule.name);
myModule.sayHello();
报错如下:
"export 'default' (imported as 'myModule') was not found in '@cp/utils/format'
方法二 直接
getModule.js
import { name, sayHello } from './module'
console.log(name);
sayHello();
方法三 别名
getModule.js
import { name as name_2, sayHello as sayHello_2 } from './module'
console.log(name_2);
sayHello_2();
二、直接获取对象
(1)require/exports
module.js
var name = "colin";
module.exports = name;
getModule.js
var name = require('./module');
console.log(name);
(2)import/export
module.js
export default name = 'colin';
getModule.js
import name from './module'
console.log(name);
三、拓展
上面介绍的都是加载 js
文件,但是也可以加载 json
文件。
下面以 require/exports 为例 (不需要加上 exports 即可直接导出)
module.json
{
"name": "a",
"age": 18
}
getModule.js
const name = require('./module');
const {name, age} = require('./module');
require/exports 和 import/export 区别的更多相关文章
- require/exports 与 import/export 的区别?
文章作者:寸志链接:https://www.zhihu.com/question/56820346/answer/150724784来源:知乎 遵循的模块化规范不一样 模块化规范:即为 JavaScr ...
- 简单介绍export default,module.exports与import,require的区别联系
他们都是成对使用的,不能乱用: module.exports 和 exports是属于CommonJS模块规范,对应---> require属于CommonJS模块规范 export 和 exp ...
- export,export default,module.exports,import,require之间的区别和关联
module.exports Node 应用由模块组成,采用 CommonJS 模块规范.根据这个规范,每个文件就是一个模块,有自己的作用域.在这些文件里面定义的变量.函数.类,都是私有的,对外不可见 ...
- 探讨ES6的import export default 和CommonJS的require module.exports
今天来扒一扒在node和ES6中的module,主要是为了区分node和ES6中的不同意义,避免概念上的混淆,同时也分享一下,自己在这个坑里获得的心得. 在ES6之前 模块的概念是在ES6发布之前就出 ...
- js中的require、define、export、import【转】
原文链接:https://www.cnblogs.com/libin-1/p/7127481.html 为什么有模块概念 理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块. ...
- Javascript在使用import 与export 区别及使用
一.import与export的用法 1.import的几种用法 import defautName from 'modules.js'; import { export } from 'module ...
- export,export default和import的区别以及用法
首先要知道export,import ,export default是什么 ES6模块主要有两个功能:export和import export用于对外输出本模块(一个文件可以理解为一个模块)变量的接口 ...
- ES6常用语法简介import export
ES6常用语法简介import export let与var用法区别 //var var a = []; for (var i = 0; i < 10; i++) { a[i] = functi ...
- 关于node中 require 和 ES6中export 、export default的总结
nodejs中 require 方法的加载规则 方法的加载规则 1. 优先从缓存中加载 2. 核心模块 3. 路径形式的模块 4. 第三方模块 一.优先从缓存中加载 main.js:执行加载a.js模 ...
随机推荐
- listview优化(中)
1,对Imageview使用setTag()方法来解决图片错位问题,这个Tag中设置的是图片的url,然后在加载的时候取得这个url和要加载那position中的url对比,如果不相同就加载,相同就是 ...
- ibatis 数据库时间 插入数据
<insert id="insert" parameterClass="ToDoBar" > <selectKey resultCla ...
- UE4 创建自己的角色
首先,需要在UE4中设置自己需要输入的按键,点击工具栏的Settings/ProjectSettings,找到input,在Bindings下添加自己需要的输入按键,我这里绑定了JumpBtn.Mov ...
- 《java入门第一季》之面向对象面试题(面向对象都做了哪些事情)
创建对象内存图解.
- Linux内核通用队列的使用笔记(读linux内核设计与实现)
Linux内核通用队列实现 Kfifo位置:kernel/kififo.c 使用需要包含头文件#include <kernel/kififo> 1.创建队列(动态创建)int kfifo_ ...
- Gradle 1.12用户指南翻译——第二十二章. 标准的 Gradle 插件
其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...
- RedHat系列软件管理(第二版) --二进制软件包管理
RedHat系列软件管理 --二进制软件包管理 Linux学习思想-Linux相对与Windows来非常透明,因此,无论是系统,还是软件,都会有本身自带,或者是Man给提供的非常详细的说明/帮助文档, ...
- Xcode出现may cause a leak非忽略的解决方法
前面提到可以把may cause a leak当成安静的美代码忽略掉,但其实还是有另一种方法滴. 你可以用如下代码替换以消除該警告: [xxx performSelector:_cmd withObj ...
- 海量数据处理 - 10亿个数中找出最大的10000个数(top K问题)
前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅场的心已经按捺不住了),这个问题还是建立最小堆比较好一些. 先拿10000个数建堆, ...
- 在 Vim 中设置 Tab 为4个空格
缩进用 tab 制表符还是空格,这不是个问题,就像 python 用四个空格来缩进一样,这是要看个人喜好的.在 Vim 中可以很方便的根据不同的文件类型来设置使用 tab 制表符或者空格,还可以设置长 ...