// Parent.js
import React, { useState } from 'react';
import Child from '../pages/Child/Child';
function Parent() {
const [color, setColor] = useState('red');
return (
<div>
<h1>Parent Component</h1>
{/*자식 컴포넌트에 넘길 prop 객체에 titleColor와 contentColor를 넣는다.*/}
<Child titleColor={color} contentColor={color} />
</div>
);
}
export default Parent;
// Child.js
import React from 'react';
//부모 컴포넌트로부터 props를 받는다.
function Child(props) {
return (
<div>
<h1 style={{color : props.titleColor}}>Child Component</h1>
</div>
);
}
export default Child;
// Parent.js
function Parent() {
const [color, setColor] = useState('red');
function changeColor() {
setColor('blue');
}
return (
<div>
<h1>Parent Component</h1>
<Child titleColor={color} changeColor={changeColor} />
</div>
);
}
function Child(props) {
console.log(props);
return (
<div>
<h1 style={{ color: props.titleColor }}>Child Component</h1>
<button onClick={props.changeColor}>Click</button>
</div>
);
}
부모에게서 받은 props 객체
{titleColor: 'red', changeColor: ƒ}
changeColor: ƒ changeColor()
titleColor: "red"
버튼 클릭 후
{titleColor: 'blue', changeColor: ƒ}
changeColor: ƒ changeColor()
titleColor: "blue"
동작 순서
<button>
에서 onClick 이벤트 발생<Child />
컴포는트에 color(blue) 전달//HTML
<button onclick="myEvent()">
click me
</button>
//React
<button onClick={myEvent}>
click me
</button>
예시)
<a href="/" onClick={(event)=>{
event.preventDefault();
}}>이 a태그는 클릭해도 페이지를 이동하지 않습니다.</a>