✏️Props
import React, { useState } from "react";
import OddEvenResult from "./OddEvenResult";
const Counter = ({ initialValue }) => {
console.log(initialValue);
const [count, setCount] = useState(initialValue);
const onIncrease = () => {
setCount(count + 1);
};
const onDecrease = () => {
setCount(count - 1);
};
return (
<div>
<h2>{count}</h2> {}
<button onClick={onIncrease}>+</button>
<button onClick={onDecrease}>-</button>
⭐<OddEvenResult count={count} />
</div>
);
};
⭐
Counter.defaultProps = {
initialValue: 0,
};
export default Counter;
import MyHeaders from "./MyHeader";
import Counter from "./Counter";
function App() {
let number = 5;
⭐const counterProps = {
a: 1,
b: 2,
c: 3,
d: 4,
e: 5,
initialValue: 5,
};
return (
<div>
<MyHeaders />
<Counter ⭐{...counterProps} />
{}
{}
{}
{}
</div>
);
}
export default App;
- props를 객체에 담아서 비구조할당으로 보낼수있다.
const OddEvenResult = ({ count }) => {
console.log(count);
return <>{count % 2 === 0 ? "짝수" : "홀수"}</>;
};
export default OddEvenResult;
🤔리-랜더는 언제되는 걸까?
- 본인이 가진 state가 바뀔 떄마다 리랜더가 된다.
- 나에게 내려오는 props가 바뀌면 리랜더가 된다.
- 부모가 리랜더되면 자식도 리랜더 된다.
Children
const Container = ({ ⭐children }) => {
return (
<div style={{ margin: 20, padding: 20, border: "1px solid gray" }}>
{children}
</div>
);
};
export default Container;
- Container안에를 children으로 넘겨준다.
return (
⭐<Container>
{" "}
{}
<div>
<MyHeaders />
<Counter {...counterProps} />
{}
{}
{}
{}
</div>
</Container>
);
}