TIL 15일차 - [React] 기초
🍏 Achievement Goals 🍏
🍒 React State & Props
- state, props의 개념에 대해서 이해하고, 실제 프로젝트에 바르게 적용할 수 있다.
state
: 내부에서 변화하는 값이다.
props
: 외부로부터 전달받은 값이다.
props의 특징은 부모(상위) 컴포넌트에서 전달 받은 값이며, 객체 형태이고 읽기 전용(read-only)이라는 것이다.
- React 함수 컴포넌트(React Function Component)에서 state hook을 이용하여 state를 정의 및 변경할 수 있다.
const [state 저장 변수, state 갱신 함수] = useState(상태 초기 값);
먼저 위의 형식으로 사용할 state 변수를 선언해준다.
const [isChecked, setIsChecked] = useState(false);
그 다음 이벤트를 다룰 함수가 상태를 갱신하도록 만들어준다.
const handleChecked = (event) => {
setIsChecked(event.target.checked);
}
마지막으로 사용할 함수를 input의 속성으로 넣어준다.
<input type="checkbox" checked={isChecked} onChange={handleChecked} />
- React 컴포넌트(React Component)에 props를 전달할 수 있다.
- 하위 컴포넌트에 전달하고자 하는 값과 속성을 정리한다.
- props를 이용하여 정의된 값과 속성을 전달한다.
- 전달 받은 props를 렌더링한다.
ex)
<Child text={'Hello World!'} /> // 1.
function Child(props) = { // 2.
return (
<div className='child'>
<p>{props.text}</p> // 3.
</div>
);
};
위의 코드는 아래처럼 값을 tag 사이에 넣어 쓸 수도 있다.
<Child>Hello World!</Child> // 1.
function Child(props) = { // 2.
return (
<div className='child'>
<p>{props.children}</p> // 3.
</div>
);
};
- 이벤트 핸들러 함수를 만들고 React에서 이용할 수 있다.
Yes ! 😋
- 실제 웹 애플리케이션의 컴포넌트를 보고 어떤 데이터가 state이고 props에 적합한지 판단할 수 있다.
state인지 판별하는 방법에는 세 가지가 있다.
- 부모로부터 props를 통해 전달됩니까?
- 시간이 지나도 변하지 않나요?
- 컴포넌트 안의 다른 state나 props를 가지고 계산할 수 있나요?
위의 세 질문 중 하나라도 yes가 나온다면 state가 아니다.
- 실제 웹 애플리케이션 개발 시 적합한 state와 props의 위치를 스스로 정할 수 있다.
Yes ! 😌
- React의 단방향 데이터 흐름(One-way data flow)에 대해 자신의 언어로 설명할 수 있다.
우리는 props를 이용하며 프로그램을 짜기 때문에 데이터는 위에서 아래로 흐르게 된다. 이를 하향식(top-down) 즉 단방향 데이터 흐름(One-way data flow)이라고 이야기한다.
🍒 React Twittler State & Props
state
: 내부에서 변화하는 값이다.
props
: 외부로부터 전달받은 값이다.
props의 특징은 부모(상위) 컴포넌트에서 전달 받은 값이며, 객체 형태이고 읽기 전용(read-only)이라는 것이다.
const [state 저장 변수, state 갱신 함수] = useState(상태 초기 값);
먼저 위의 형식으로 사용할 state 변수를 선언해준다.const [isChecked, setIsChecked] = useState(false);
그 다음 이벤트를 다룰 함수가 상태를 갱신하도록 만들어준다.
const handleChecked = (event) => { setIsChecked(event.target.checked); }
마지막으로 사용할 함수를 input의 속성으로 넣어준다.
<input type="checkbox" checked={isChecked} onChange={handleChecked} />
- 하위 컴포넌트에 전달하고자 하는 값과 속성을 정리한다.
- props를 이용하여 정의된 값과 속성을 전달한다.
- 전달 받은 props를 렌더링한다.
ex)
<Child text={'Hello World!'} /> // 1. function Child(props) = { // 2. return ( <div className='child'> <p>{props.text}</p> // 3. </div> ); };
위의 코드는 아래처럼 값을 tag 사이에 넣어 쓸 수도 있다.
<Child>Hello World!</Child> // 1. function Child(props) = { // 2. return ( <div className='child'> <p>{props.children}</p> // 3. </div> ); };
Yes ! 😋
state인지 판별하는 방법에는 세 가지가 있다.
- 부모로부터 props를 통해 전달됩니까?
- 시간이 지나도 변하지 않나요?
- 컴포넌트 안의 다른 state나 props를 가지고 계산할 수 있나요?
위의 세 질문 중 하나라도 yes가 나온다면 state가 아니다.
Yes ! 😌
우리는 props를 이용하며 프로그램을 짜기 때문에 데이터는 위에서 아래로 흐르게 된다. 이를 하향식(top-down) 즉 단방향 데이터 흐름(One-way data flow)이라고 이야기한다.
이벤트 핸들러 때문에 애먹었다. 조금 더 친해지자 ^^
Author And Source
이 문제에 관하여(TIL 15일차 - [React] 기초), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@tamagoyakii/TIL-15일차-React-기초저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)