<!DOCTYPE html>
<html lang="en">
<body>
<div id="root"></div>
</body>
<script src="https://unpkg.com/react@17.0.2/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@17.0.2/umd/react-dom.production.min.js"></script>
<script src="https://unpkg.com/prop-types@15.7.2/prop-types.js"></script>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<script type="text/babel">
function Btn({ text, fontSize = 12 }) {
return (
<button
style={{
backgroundColor: "tomato",
color: "white",
padding: "10px 20px",
border: 0,
borderRadius: 10,
fontSize: fontSize,
}}
>
{text}
</button>
);
}
Btn.propTypes = {
text: PropTypes.string.isRequired,
fontSize: PropTypes.number,
};
function App() {
return (
<div>
<Btn text={"Save Changes"} fontSize={18} />
<Btn text={"Continue"} />
</div>
);
}
ReactDOM.render(<App />, root);
</script>
</html>
function App() {
return (
<div>
<Btn text={"Save Changes"} fontSize={18} />
<Btn text={"Continue"} />
</div>
);
}
로그를 찍어보면 Object에 key, value 형식으로 데이터가 넘겨받는 것을 확인할 수 있다.
function Btn(props) {
...
이런 식으로 props 를 파라미터로 받아서 props.text로 값을 뽑아쓸 수 도 있지만 가독성 및 코드의 질을 고려해서 {}에 사용할 값을 바로 받아서 사용하도록 하자.
function Btn({ text, fontSize = 12 }) {
...
// 프로퍼티 타입을 지정해주기 위해 사용 한다.
import PropTypes from 'prop-types'
or
<script src="https://unpkg.com/prop-types@15.7.2/prop-types.js"></script>
Btn.propTypes = {
text: PropTypes.string.isRequired,
fontSize: PropTypes.number,
};