[React] Singulart clone project | javascript Hover
javascript Hover 구현하기
이전 1차 프로젝트에서도 진행했던 기능이지만 Hook을 이용한 로직을 구현하다보니 너무 새로워보였다.
styled-components 사용시 props로 받는 개념도 짚고 넘어가야했다.
// *처음 피드백을 받고 구현한 로직 : 이벤트 메서드와 Boolean값을 이용했다
// onMouseEnter={() => setColorHover(true)}
// onMouseLeave={() => setColorHover(false)}
// colorHover={colorHover}
시행착오 최종
return (
{artData.map((artinfo, idx) => {
const props = {
key: artinfo.id,
hover: hover,
colorHover: numIdx === idx,
onMouseEnter: () => idxHandler(idx),
onMouseLeave: () => idxHandler(-1),
};
return (
<ArtFragment>
<Liner />
<ImgBox imageUrl={artinfo.thumbnail_url}>
<Hover
{...props}
/>
<Shadow />
</ImgBox>
<ArtName {...props}>
시행착오 1
const idxHandler = index => {
setNumIdx(index);
setHover(!hover);
};
const hoverHandler = status => {
setHover(status);
};
return (
<Hover
key={artinfo.id}
colorHover={numIdx === idx && 'colorHover'}
onMouseEnter={() => idxHandler(idx)}
hover={hover}
onMouseLeave={() => hoverHandler(true)} />
<ArtName
key={artinfo.id}
colorHover={numIdx === idx && 'colorHover'}
onMouseEnter={() => idxHandler(idx)}
hover={hover}
onMouseLeave={() => hoverHandler(true)} />
시행착오 2
return (
<Hover
key={artinfo.id}
colorHover={numIdx === idx}
//빈문자열, 0 false
onMouseEnter={() => idxHandler(idx)}
hover={hover}
onMouseLeave={() => idxHandler(-1)}
/>
<Shadow />
</ImgBox>
+a | Styled Components에 props내려주기
/* background-color: ${props => props.colorHover && props.theme.primaryColor};
opacity: ${props => props.colorHover && 0.7}; */
${props => {
if (props.colorHover) {
return css`
background-color: ${({ theme }) => theme.primaryColor};
opacity: 0.7;
`;
} else if (props.colorHover) {
return css`
opacity: 0;
`;
}
}}
/* bottom: ${props => (props.colorHover ? '20px' : 0)}; */
${props => {
if (props.colorHover) {
return css`
bottom: ${props => props.colorHover && '20px'};
`;
} else if (props.colorHover) {
return css`
bottom: ${props => props.colorHover && '0'};
`;
}
}}
Author And Source
이 문제에 관하여([React] Singulart clone project | javascript Hover), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jaewon97/React-Singulart-clone-project-javascript-Hover저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)