코딩앙마 유튜브를 보며 react.js 스터디를 하고있다.
next.js안에서만 리액트를 써봤고, 회사 프로젝트를 하느라 3개월동안 바닐라 자바스크립트만 쓰느라
react를 복습하며 놓친 부분을 메우고 있는 중이다!
react.js 스터디 - props로 내려줄때 원하는 부분만 가져오기
내가 기존에 알고있던 props 사용방식은 다음과 같다.
출처: https://ko.reactjs.org/docs/components-and-props.html#function-and-class-components
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
function App() {
return (
<div>
<Welcome name="Sara" /> <Welcome name="Cahal" /> <Welcome name="Edite" /> </div>
);
}
App 컴포넌트에서 name을 넘겨서 Welcome 컴포넌트에서 props.name으로 받는 형태.
props가 오브젝트 형태로 넘겨진다.
그런데 원하는 데이터만 넘겨서 쓰고 싶을 때는 아래 Hello({ age }) 와 같은 형태로 보낼 수 있었다.
구조분해 할당 원리로 이렇게 되는 것이라고.
props를 중복해서 쓰지 않아도 돼서
깜빡하고 적지 못했다가 '왜 값이 안넘겨지지?'하는 벙찌는 일이 줄어들 것 같다.
import './App.css';
import Hello from './component/Hello';
function App() {
return (
<div className='App'>
<h3>props: properties</h3>
<Hello age={10} />
<Hello age={20} />
<Hello age={30} />
</div>
);
}
export default App;
App 컴포넌트에서 Hello 컴포넌트로 age를 넘긴다.
import { useState } from 'react';
export default function Hello({ age }) {
const [name, setName] = useState('Mike');
const msg = age > 19 ? '성인 입니다.' : '미성년자 입니다.';
return (
<>
<h1>state</h1>
<h2 id='name'>
{name}({age}) : {msg}
</h2>
<button
onClick={() => {
setName(name === 'Mike' ? 'Jane' : 'Mike');
}}>
Change
</button>
</>
);
}
받을 때 괄호 안에 인자값을 {age}로 해서 사용.
age로 바로 받아서 사용 가능하다.
결과물은 다음과 같다.
10, 20, 30이라는 age 값이 Hello라는 컴포넌트에 잘 넘겨진 것을 확인할 수 있다.
'TIL' 카테고리의 다른 글
node express에서 html, js, css파일 정상적으로 불러오기 (0) | 2022.11.30 |
---|---|
리액트 yarn start시 proxy 에러 해결 방법 (0) | 2022.09.23 |
스프링부트 초보의 미니 프로젝트 만들기 - 리액트 연동 초기 세팅 (1) | 2022.09.23 |
스프링부트 초보의 미니 프로젝트 만들기 - MVC 모델 큰 그림으로 개념잡기 (0) | 2022.09.22 |
스프링부트 초보의 미니 프로젝트 만들기 - lombok, log4j2 설치 (0) | 2022.09.22 |