TIL

240811

playhong 2024. 8. 11. 14:28

FACTS(사실, 객관) : 내가 한 일

props

컴포넌트끼리의 정보교환방식 (부모 -> 자식 정보교환)

반드시 위에서 아래로 흐름 (자식 -> 부모 X)

읽기전용으로 취급 (수정X)

 

- 명시적으로 부모 컴포넌트를 자식 컴포넌트로 넘겨주는 방법

//부모컴포넌트
//명시적으로 lastName을 Child에 보내줌
function Parents() {
	const lastName = "홍";
    return <Child lastName={lastName} />; 
};
//자식컴포넌트
function Child(props) { //props는 임의로 지정한 명칭이며, 다른 명칭으로 변경가능
	console.log("props => ", props); //props => lastName:"홍"
    
    const name = "길동";
    return (<div>
    	<p>{`내 이름은 ${props.lastName}${name}입니다`}</p>
    </div>);
};

 

- children으로 부모 컴포넌트를 자식 컴포넌트로 넘겨주는 방법

//부모컴포넌트
const Parents = () => {
	return <Child>홍</Child>;
};
//자식컴포넌트
const Child = (props) => {
	return <div>{props.children}길동</div>
}

 

* children의 용도

layout컴포넌트(배경)를 만들때 주로 사용

 

- 구조분해할당을 이용해 props.lastName을 줄여쓸 수도 있음

(1)

function Child(props) { 
	const { lastName } = props;
    
    const name = "길동";
    return (<div>
    	<p>{`내 이름은 ${lastName}${name}입니다`}</p>
    </div>);
};

 

(2)

function Child({ lastName }) { 
	const name = "길동";
    return (<div>
    	<p>{`내 이름은 ${lastName}${name}입니다`}</p>
    </div>);
};

 

만약에 자식컴포넌트에서 lastName을 받을거라고 정의를 했는데 

실수로! 부모컴포넌트에서 lastName을 보내지 않았을 경우!

=> return <Child lastName={lastName} /> 에서 그냥 <Cild />만 한 경우를 대비해 

자식컴포넌트에서 props에 기초값을 세팅해놓을 수 잇음

function Child({ lastName = "미입력" }) { 
	const name = "길동";
    return (<div>
    	<p>{`내 이름은 ${lastName}${name}입니다`}</p>
    </div>);
};

이렇게 기초값을 설정해두면 "내 이름은 미입력길동입니다"라고 작성되어 성을 넣지 않았음을 바로 알 수 있음!

 

중요한 것

1. 부모로부터 자식으로 값을 내려줄 땐 props를 사용한다

2. 자식은 하나의 객체로 props의 값을 받는다 (children포함)

3. "props."을 일일히 써주기 귀찮으니 구조분해할당을 해 변수로 활용할 수 있다

4. 근데 이 변수가 부모에 세팅이 안되어있는 경우 기초값을 이용해 예외사항을 방지할 수 있다

 


FEELINGS(느낌, 주관) : 나의 감정적인 반응, 느낌

배워야 할게 정말 많다 어렵다


FINDINGS(배운 것) : 그 상황으로부터 내가 배운 것, 얻은 것

 

컴포넌트 정보교환방식

부모컴포넌트와 자식컴포넌트 props


FUTURE(미래) : 배운 것을 미래에는 어떻게 적용할 지

 

'TIL' 카테고리의 다른 글

240813  (0) 2024.08.13
240812  (0) 2024.08.12
240809  (0) 2024.08.09
240808  (0) 2024.08.08
240807  (0) 2024.08.08