한주동안 내가 맡은 부분은 헤더 네비게이션바 목록리스트 !
헤더
네비게이션바
목록리스트
✍🏻 배운 내용
헤더의 왼쪽끝에 있는 아이콘에 마우스가 위치하면 네브바가 나오도록 이벤트를 설정해야한다.
헤더와 네브는 아래 코드와 같이 컴포넌트화 되어있고 Main 컴포넌트로 임포트된다. 이벤트가 발생해야하는 것은 헤더이고 그 결과로 반응해야하는 것은 네브이기때문에 헤더와 네브를 모두 포함하는 부모 컴포넌트에서 함수를 정의하고 함수자체를 porps값으로 헤더에 전달해줘야 한다.
class Main extends Component {
render() {
return (
<div className="main">
<Header />
<Nav />
<Slider />
</div>
);
}
}
export default Main;
그림으로 보면 이런 구조!
메인 컴포넌트에서 마우스엔터와 리브 이벤트에 대한 함수를 정의해줬고 헤더에는 props값으로 함수를 네브에는 함수에 의해 바뀌는 state값을 전달했다.
class Main extends Component {
constructor(props) {
super(props);
this.state = {
nav: "close"
};
}
handlerOver = () => {
this.setState({
nav: "open"
});
};
handlerOut = () => {
this.setState({
nav: "close"
});
};
render() {
return (
<div className="main">
<Header handlerOver={this.handlerOver}></Header>
<Nav handlerOut={this.handlerOut} nav={this.state.nav} />
<Slider />
</div>
);
}
}
export default Main;