>  기사  >  웹 프론트엔드  >  node.js 및 ES6의 내보내기 및 module.exports 사용에 대한 자세한 설명

node.js 및 ES6의 내보내기 및 module.exports 사용에 대한 자세한 설명

php中世界最好的语言
php中世界最好的语言원래의
2018-04-16 15:36:404127검색

이번에는 ES6의 node.js 사용과 내보내기, module.export에 대해 자세히 설명하겠습니다. node.js와 ES6 내보내기, module.export 사용 시 notes는 무엇인가요? .

아시 머리가 너무 크네....

이제 작업이 완료되었으니 앉아서 사용 범위를 정리해 보겠습니다.

  • require: node와 es6 모두에서 가져오기 지원

  • export/import: es6

  • module.exports/exports: node

에서 내보내기만 지원 이 순간부터 나는 그들 사이의 관계를 명확히 해야 할 때라고 느꼈다. 그렇지 않으면 나는 혼란 속에 죽을 것이다. 할 말이 많지 않습니다. 시작해 보겠습니다! !

노드 모듈

Node의 모듈 시스템은 CommonJS 사양을 따릅니다.

그렇다면 CommonJS 사양이 무엇인지에 대한 질문이 다시 제기됩니다.

과거에는 js가 상대적으로 혼란스러웠기 때문에 모두가 자신의 코드를 작성했고, 모듈이라는 개념도 없었습니다. 이 명세는 실제로는 모듈에 대한 정의입니다.

CommonJS에서 정의한 모듈은 모듈 식별(모듈), 모듈 정의(내보내기), 모듈 참조(필수)

로 나뉩니다. 먼저 내보내기와 module.exports에 대해 설명하겠습니다

노드가 파일을 실행하면 내보내기 및 모듈 개체 ,

가 파일에 생성됩니다. 그리고 모듈에는 내보내기 속성이 있습니다. 이들 사이의 관계는 아래와 같으며 모두 {} 메모리 영역을 가리킵니다.

rreee

그럼 코드를 살펴보겠습니다.

rreee

위에서 볼 수 있듯이 실제로 require에 의해 내보낸 콘텐츠는 내보내기가 아닌 module.exports가 가리키는 메모리 블록의 콘텐츠입니다.

간단히 말해서, 둘 사이의 차이점은 내보내기가 단지 module.exports에 대한 참조일 뿐이며, 이는 컨텐츠 추가 시 후자를 지원하는 데 사용됩니다.

일반 언어로 표현하면, 내보내기는 메모리의 데이터를 작업하는 데 module.exports만 지원합니다. .정말 힘든 일이에요.

실제로 이를 이해하기 위해 메모리 블록의 개념을 사용하면 매우 명확해질 것입니다.

그런 다음 혼동을 피하기 위해 module.exports를 사용하여 내보낸 다음 require를 사용하여 가져옵니다.

ES에서 모듈 내보내기 및 가져오기

솔직히 말해서 es의 모듈은 매우 명확합니다. 그러나 명확히 해야 할 몇 가지 세부 사항이 있습니다.

예를 들어, 내보내기와 내보내기 기본값, 가져올 때 import a from .., import {a} from .. 등은 좀 헷갈리므로 정리를 시작해 보겠습니다.

내보내기 및 내보내기 기본값

먼저 이 두 가지 내보내기에 대해 이야기한 다음 차이점에 대해 이야기하겠습니다

  • 내보내기 및 내보내기 기본값 모두 상수, 함수, 파일, 모듈 등을 내보내는 데 사용할 수 있습니다.

  • 파일이나 모듈에는 여러 내보내기 및 가져오기가 있을 수 있으며 내보내기 기본값은 하나만 있습니다.

  • 다음을 통해 내보내기 내보내기, 가져오기 { }를 추가할 때 내보내기 기본값은 필요하지 않습니다.

  • 내보내기는 변수 표현식을 직접 내보낼 수 있지만 내보내기 기본값은 그럴 수 없습니다.

검증을 위해 코드를 살펴보겠습니다

testEs6Export.js

exports = module.exports = {};

index.js

//utils.js
let a = 100;
console.log(module.exports); //能打印出结果为:{}
console.log(exports); //能打印出结果为:{}
exports.a = 200; //这里辛苦劳作帮 module.exports 的内容给改成 {a : 200}
exports = '指向其他内存区'; //这里把exports的指向指走
//test.js
var a = require('/utils');
console.log(a) // 打印为 {a : 200}

위에서 볼 수 있듯이 ES6의 모듈 시스템은 매우 유연하게 느껴집니다.

이 기사의 사례를 읽은 후 방법을 마스터했다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 자료:

JS 이진 트리의 선순, 순차, 후순 순회 구현 방법

터치 이벤트에서 슬라이딩 거리 길이를 구하는 방법

위 내용은 node.js 및 ES6의 내보내기 및 module.exports 사용에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.