[TIL] 엘리스 SW 엔지니어 트랙 Day 066
글 작성자: 망고좋아
반응형

📖 오늘 배운 내용 - 2022.01.22
- styled-components
- 페이지네이션 - offset 방식
📝 재사용한 스타일을 커스텀하기
import styled, { css } from "styled-components"; export const Container = styled.div` background-color: white; border: 1px solid #f0f1f3; border-radius: 8px; width: 296px; height: 407px; box-sizing: border-box; padding: 28px 24px 20px; position: relative; display: flex; flex-direction: column; ${props => props.large && css` width: 398px; height: 409px; padding-top: 32px; `} `;
<Card.Container large>
- props를 넘겨주고 css를 사용해서 스타일 적용
font-size: ${props=> props.large ? 20 : 18}px;
이렇게도 적용 가능
📝 이미지 뒤에 배경 넣기
export const TrackCardIcon = styled.img` width: 28px; height: 28px; padding: 10px; background-color: #524FA0; border-radius: 18px; `
<Card.TrackCardIcon src={iconUrl} alt={iconUrl} />

📝 애니메이션 추가
export function Corner() { return ( <OuterCorner> <div /> </OuterCorner> ) } const OuterCorner = styled.div` width: 80px; height: 80px; box-shadow: inset 10px -10px 20px rgba(95, 95, 95, 0.1); border-radius: 0px 8px 0px 32px; position: absolute; right: 0; top: 0; :hover > div { background-color: #524FA0; width: 52px; height: 52px; } > div { // 안쪽 코너 스타일링 transition: all 200ms ease-in-out 0ms; width: 36px; height: 36px; position: absolute; left: 0; bottom: 0; background-color: #F4F4F4; box-shadow: inset 10px -10px 20px rgba(95, 95, 95, 0.07); border-radius: 0px 8px 0px 32px; } `

📝 grid
const TracksContainer = styled.div` // 이곳에 트랙카드 컨테이너의 스타일링을 추가하세요 display: grid; grid-template-columns: repeat(3, 398px); // 세로로 몇개를 두고 한개당 각각 컬럼의 width를 어떻게 설정할 것인가 grid-column-gap: 19px; grid-row-gap: 32px; `;
📝 컴포넌트 map으로 뿌려주기
<TracksContainer> {Array(6).fill("").map((el, idx) => { return <TrackCard key={`trackcard-${idx}`} /> })} </TracksContainer>
- Array(6)는 길이가 6개인 빈 배열을 만들고 .fill("") 거기를 빈 문자열로 채워준다. 그리고 idx의 값을 이용해 key값을 넣어준다.
📝 페이지네이션 :: offset 방식
[React] 리액트 페이지네이션 :: offset 방식
🎯 페이지네이션 :: offset 방식 페이지네이션을 구현하는 방법 중 하나인 offset 방식을 알아보자. 📝 페이지네이션 핵심 코드 살펴보기 {getPageNumbers(currPage, pageCount).map((page) => { return ( onClic..
lakelouise.tistory.com
📝 검색창과 API 호출 연동하기
const filterConditons = searchValue ? `filter_conditions=${JSON.stringify({title: searchValue})}&` : "" const trackUrl = `${API_END_POINT}track/list/?${filterConditons}offset=${offset}&count=6`;
- searchValue에 값이 있다면 위와 같이 api 주소에 맞춰 작성해준다.
http://api-xxxxxxx/list/?filter_conditions={ title: test }&offset=0&count=8
이렇게 검색된다.
📝 Debounce와 Throttle이란?
[React] Debounce와 Throttle이란?
🎯 Debounce와 Throttle이란? onChange 이벤트로 인해 글자가 작성될 때마다 api를 호출하게 된다면 서버에 과부하를 줄 수 있다. 이는 성능상의 문제가 발생될 수 있으며 유저의 사용성을 해치게 된다.
lakelouise.tistory.com
💡 오늘 깨달은 것
- 다른 사람이 만든 css를 보다 보면 아이디어가 좋다는 생각이 많이 든다. 내가 한다면 div로 한번 더 감싸서 스타일링했을 거 같은데, 코드를 보면 하나의 div로 모든 작업을 끝내고 있다.
- 페이지네이션과 Debounce는 이번 프로젝트에 사용할 수 있으면 사용해보자!
반응형
'프로그래밍 > Today I Learned' 카테고리의 다른 글
[TIL] 엘리스 SW 엔지니어 트랙 Day 068 (0) | 2022.01.27 |
---|---|
[TIL] 엘리스 SW 엔지니어 트랙 Day 067 (0) | 2022.01.26 |
[TIL] 엘리스 SW 엔지니어 트랙 Day 065 (0) | 2022.01.22 |
[TIL] 엘리스 SW 엔지니어 트랙 Day 064 (0) | 2022.01.20 |
[TIL] 엘리스 SW 엔지니어 트랙 Day 063 (0) | 2022.01.19 |
댓글
이 글 공유하기
다른 글
-
[TIL] 엘리스 SW 엔지니어 트랙 Day 068
[TIL] 엘리스 SW 엔지니어 트랙 Day 068
2022.01.27 -
[TIL] 엘리스 SW 엔지니어 트랙 Day 067
[TIL] 엘리스 SW 엔지니어 트랙 Day 067
2022.01.26 -
[TIL] 엘리스 SW 엔지니어 트랙 Day 065
[TIL] 엘리스 SW 엔지니어 트랙 Day 065
2022.01.22 -
[TIL] 엘리스 SW 엔지니어 트랙 Day 064
[TIL] 엘리스 SW 엔지니어 트랙 Day 064
2022.01.20
댓글을 사용할 수 없습니다.