require/exports와 import/export의 차이

2670 단어

구별


1. Require/exports는 CommonJS의 표준이고 적용 범위는 Node와 같다.js
2. import/export는 ES6의 표준이며, 적용 범위는 React와 같다

1. 간접적으로 대상을 얻는다.


(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();

방법2 직접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");
}

메소드 1간접(사용 불가능)getModule.js
import myModule from './module'  
console.log(myModule.name);
myModule.sayHello();

오류는 다음과 같습니다.
"export 'default' (imported as 'myModule') was not found in '@cp/utils/format'
방법2 직접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();

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'); 

좋은 웹페이지 즐겨찾기