티스토리 뷰
1. props
props는 읽기 전용 값이다.
컴포넌트를 함수나 클래스 어느쪽으로 제작하든 props는 수정할 수 없다.
다음의 sum 함수를 예시로 들어보자.
function sum(a, b){
return a+b;
}
이런 식의 함수를 순수 함수라고 한다. 입력 값이 변경되지 않기 때문이다.
그렇다면 입력 값이 변경되는 비순수 함수는 어떤걸 의미할까?
function withdraw(account, amount) {
account.total -= amount;
};
withdraw 함수는 입력 값이 변경된다.
이런 식으로 부수효과가 있는 함수를 비순수함수라고 한다.
모든 컴포넌트의 props와 관련해서는 순수함수여야만 한다.
2. 필요성
재사용성을 높이기 위해서이다. 예를 들어보자.
AddCharacter에서 사용하기 위해 Character 컴포넌트를 만들었다.
export default function Character(){
return (
<>
<img
src='https://images'
alt='a'
/>
<h1>Aemie</h1>
<h2>23</h2>
</>
);
}
사용하다보니 다른 등장인물을 마구마구 사용하고 싶어졌다.
하지만 캐릭터 컴포넌트를 복사해서 계속 컴포넌트를 만드는 것은 비효율적이다.
이때 우리는 props를 컴포넌트에 입력 받아 필요한 부분만 수정해 사용할 수 있다.
3. 사용법
외부로부터 props를 입력 받아와 자바스크립트 중괄호를 사용해 props.변수이름으로 코드를 수정하면 된다.
export default function Character(props){
return (
<>
<img
src={props.image}
alt='a'
/>
<h1>{props.name}</h1>
<h2>{props.age}</h2>
</>
);
}
사용할 때는 재사용할 부분의 변수만 수정해 입력해주면 된다.
function AddChracter() {
return (
<>
<Character image = ''
name=''
age=''/>
</>
);
}
Character 컴포넌트에서 props를 계속 작성하는 것이 귀찮다면,
자바스크립트 중괄호를 이용해 조금 더 코드를 줄일 수 있다.
export default function Character({image, name, age}){
return (
<>
<img
src={image}
alt='a'
/>
<h1>{name}</h1>
<h2>{age}</h2>
</>
);
}
'Oops, All Code! > 📝 Study Notes' 카테고리의 다른 글
$01. 서버와 회원가입 (0) | 2023.05.07 |
---|---|
[React] <> </> Fragments (0) | 2023.04.01 |
[React] useState와 이벤트 처리 (0) | 2023.03.31 |
[React] 컴포넌트 만들기 (0) | 2023.03.30 |
[React] JSX의 개념 (0) | 2023.03.29 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 프리코스
- 코딩테스트
- 경험플리마켓
- 회고
- 트러블슈팅
- 도서리뷰
- typescript
- 도서추천
- 피어피드백
- 프로토타입
- 대학생플리마켓
- 비즈플리마켓
- 서평
- 우아한테크코스
- javascript
- 어른의어휘공부
- js
- 어휘력
- 소사벌
- 대학생팝업스토어
- 안성스타필드
- 일급객체
- 타입좁히기
- 프론트엔드
- 네이버부스트캠프
- react
- 책추천
- 카드뉴스
- 카페추천
- 소사벌맛집
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
글 보관함