Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Til
- useEffect
- 부트캠프 #개발일지 #TIL #CSS속성 #float #clear
- js
- 개발일지
- querySelector
- 의사클래스
- 부트캠프 #CSS #개발일지 #TIL #박스모델
- 결합선택자
- JS예제
- 부트캠프 #코딩 #개발일지 #프론트엔드 #CSS #TIL
- 부트캠프 #개발일지 #TIL #FlexboxFroggy #displayflex #flexbox
- appendChild
- textContent
- 부트캠프 #CSS #개발일지 #TIL
- 리액트
- 특성선택자
- ㅜㄹㄹ
- 템플릿스트링
- 부트캠프 #스파르타코딩클럽 #개발일지# #html
- useState
- CSS
- 깃허브오류
- 부트캠프 #개발일지 #TIL #그리드 #CSS
- 부트캠프 #스파르타코딩클럽 #개발일지# #TIL #Javascript #confirm #location.href
- 개발일지 #TIL #프론트엔드 #HTML
- 부트캠프
- 부트캠프 #개발일지 #TIL #Position #위치
- React
- 알고리즘
Archives
- Today
- Total
나의 개발일지
Moment.js 대신 Day.js를 사용해야 하는 이유 본문
moment.js와 day.js는 둘 다 JavaScript에서 날짜 및 시간을 다루는 라이브러리다.
나는 moment.js를 통해 날짜를 받아왔다. 하지만 중간 피드백에서 튜터님이 moment.js보다 day.js를 사용하는 것이
좋다고 하여 리팩토링을 해봤다.
그렇다면 어떤 면에서 day.js가 moment.js보다 좋다고 할 수 있는지 알아보자.
moment.js | day.js | |
파일 크기 | 파일크기가 상당히 크다 62k (gzipped: 19.9k) --> 웹페이지 성능을 저하시킬 수 있다 |
moment.js에 비해 파일 크키가 작다 7.6k (gzipped: 3.2k) |
API 호환성 | 많은 개발자들이 익숙한 API를 제공하여 기존에 moment.js를 사용하던 프로젝트에서는 호환성을 유지하기 위해 moment.js를 계속 사용하는 것이 편리할 수 있다 |
moment.js와 유사한 API를 제공하지만 완전히 호환되지는 않다. 그러나 대부분의 일반적인 사용 사례에서는 문제가 없으며, day.js의 가벼운 크기와 성능 향상을 기대할 수 있다. |
지속적인 개발 | 2020년 이후에는 지속적인 개발이 중단되어 새로운 기능이나 버그 수정을 기대하기 어려울 수 있다 | moment.js의 영향을 받아 지속적으로 개발되고 있으며, 새로운 기능과 업데이트가 지속적으로 제공된다. |
사용방법은 간단했다. 우선 설치를 해야 한다. 그 후 코드를 수정하면 된다.
yarn add dayjs
기존 moment.js를 사용한 코드
import moment from 'moment';
const moment = require('moment')
return (
<Calendar
onChange={onChangeToday}
value={today}
// eng 버전
locale="en"
// 일요일부터 시작
calendarType="gregory"
tileContent={({ date, view }) => {
const formattedDate = moment(date).format('YYYY. MM. DD.');
if (createdAtList.find((x) => x === moment(date).format('YYYY. MM. DD.'))) {
const postCount = dayCount[formattedDate] || 0;
return (
<>
<div className="habitDayContainer" key={formattedDate}></div>
<St.CalendarContentsContainer>
<div />
<img
key={formattedDate}
className="habitImage"
src={mangofavicon}
alt={`habit-sticker-${formattedDate}`}
/>
<St.PostCount> x{postCount}</St.PostCount>
</St.CalendarContentsContainer>
</>
);
}
return null;
}}
/>
<St.CurrentDate>
<CiCalendar />
{/* 현재 날짜 {moment(date).format('YYYY년 MM월 DD일')} */}
현재 날짜 {moment(date).format('YYYY년 MM월 DD일')}
</St.CurrentDate>
);
};
게시물을 올릴 때 createdAt에 해당하는 날짜와 달력에 있는 날짜와 같다면 달력에 게시물 수를 표시해주는 것과
현재 날짜를 표시해주는 것밖에 쓴 게 없어서 리팩토링 하는 작업은 굉장히 간단했다.
moment를 dayjs로 다 바꾸면 끝이였다.
'라이브러리' 카테고리의 다른 글
react-calendar 리액트 달력 적용하기 / 컨텐츠 추가하기 📆 (0) | 2024.01.06 |
---|---|
sweetalert2 로 예쁜 모달창 띄우기 (0) | 2023.12.30 |