React JS - Javascript ES6에 Modules

Nguyen Tinh·2023년 5월 9일

reactjs

목록 보기
3/6
post-thumbnail

한 기능을 가지고 있는 파일를 나누는 것

logger.js
Import / Export
-삽입/내보내기

function logger(log, type ='log'){
	console[type](log);
    //https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_accessors
    
}
export default logger; 
//logger를 밖으로 push
import logger from './logger.js'; 
//cannot use import statement outside a module
console.log(logger);
logger('Test message...','warn');
-->
<body>
<script type="module" src="./app.js">

다른 예제:logger.js

export const TYPE_WARN ='warn';
export const TYPE_ERROR ='error';

function logger(log, type =TYPR_WARN){
	console[type](log);
}
export default logger; 

app.js

import logger, {
	TYPE_WARN,
	TYPE_ERROR
}from './logger.js'; 

console.log(logger);
logger('Test message...',TYPE_ERROR);

가끔 import 파일은 default로 export할 필요없다

예: consttants.js

export const TYPE_WARN ='warn';
export const TYPE_ERROR ='error';

logger.js

import{
TYPE_WARN
} from './constants';
function logger(log, type =TYPR_WARN){
	console[type](log);
}
export default logger;

app.js

import logger from './logger.js'; 
import{
TYPE_WARN,
TYPE_ERROR
} from './constants.js';

logger('Test message...',TYPE_ERROR);

import{
TYPE_WARN,
TYPE_ERROR
} from './constants.js';
-->default 로 임포트가 아님

import logger from './logger.js'; 
//import constants from './constants.js';//에러
import * as constants from './constants.js'

console.log(constants);
// Module{Symbol(Symbol.toStringTag):"Module})
///TYPE_WARN : "warn"
///TYPE_ERORR : "erorr"
...
//logger('Test message...',TYPE_ERROR);

다른 export default 문법:

logger 폴더> logger.js
logger 폴더> index.js
index.js --한 모듈을 한 다른 모듈로 export default 해줌

//import logger from './logger.js';
//export default logger;

export {default} from './logger.js';//default는 logger
//export {default as logger2} from './logger.js';

app.js

import {logger} from './logger/index.js'; 
import * as constants from './constants.js'

console.log(constants);
logger2('Test message...', constants.TYPE_WARN);

0개의 댓글