자바스크립트 배열의 내장함수인map을 활용하여 컴포넌트를 반복문처럼 렌더링할 수 있습니다.
map함수는 전달된 함수를 사용해서 배열 내에서 원하는 규칙에 따라 가공 후 새로운 배열을 생성할 수 있습니다.
[사용방법]
array.map(callbackFunc, <thisArgument>) • callback: 배열을 생성하는 함수로 파라미터는 다음 세 가지입니다. - currentValue: 현재 처리값 - index: 현재 처리 index - array: 원본 배열 • thisArg(선택 항목): callback 함수 내부에서 사용할 this Ref
[예시 - 01 ] - 아래 내용을 개발자 도구에서 수행해 볼 수 있습니다.
var arr = [5, 4, 9, 7];
var result = arr.map(function(vv){
return vv * vv;
});
//결과
result = [25, 16, 81, 49];
하지만 이 두가지 파일에 모두 동일한 class 명으로 css를 작성하면 나중에 import되는 class가 오버라이딩하여 기존 동일한 class명의 css를 적용할 수 업습니다.
위의 그림을 보면 Greeting.css의 내용이 App Component에도 적용되었습니다. 각각의 css파일이 각 component 별로 종속되어 적용되는 것이 아니라 실제 생성된느 패이지의 head영역에 모두 적용되기 때문에 동일한 css class명은 사용할 수 없습니다.
CSS파일을 이용하여 작성 -component 에 종속되는 css 작성
그렇다면 각 component 별로 css가 적용되는 방법을 알아보도록 하겠습니다.
Greeting.css의 파일명을 Greeting.module.css로 변경합니다. 일반적으로 파일명을 작성할때 component에 종속되는 css는 component의 이름과 동일하게 작성합니다.
파일명이 변경(오류가 발생함) 되었고 component에 종속되는 css를 작성하기 위해 기존 코드를 수정합니다.
Greeting.js
import styles from './Greeting.module.css'; // 변경된 부분
export default function Greeting(){
return (
<div>
<h2 style={
{
color : "#F33"
,paddingLeft : "200px"
,opacity : 0.3
,border : "1px"
,borderRight : "2px solid #111"
}
}>Greeting!!!</h2>
<div className={styles.test}>Greeting component</div> // 변경된부분
</div>
)
}
import './Greeting.css' 항목을 위 예시 코드와 같이 import styles from './Greeting.module.css'; 로 변경합니다.