Calendar 📆 & dayjs
課題の過程でカレンダーを実現し,直接実現カレンダー案と使用ライブラリ案に分けた.
カレンダーを実現するためにライブラリを使用することにしました.
ライブラリを使うとカレンダー機能が簡単に使え、カスタマイズも簡単だと思います.
しかし、カスタマイズは容易ではありません.
📆 Mui date picker
最初にMuiの日付セレクタ、日付範囲セレクタライブラリを使用します.
Mui Date Pickerは良いdateライブラリです.日付選択、時刻選択、日付範囲選択など、さまざまな機能が用意されています.
しかし、CSSのカスタマイズは多くの困難に直面している.
import { makeStyles } from "@material-ui/core/styles";
export const styles = makeStyles(() => ({
root: {
border: "1px solid grey"
}
}));
makeSteles()を使用してカスタマイズしましたが、Dateの日付テキスト部分のみカスタマイズ可能で、下記で日付を変更するのに時間がかかり、二度と希望がないので諦めました.
(データセレクタのルート要素へのアクセスは可能ですが、サブ要素へのアクセスは失敗しています...)
Muiはlabタグで、まだ開発中のようです.
📆 react date picker
https://reactdatepicker.com/
次の代替案として見つかったライブラリは、「反応日セレクタ」ライブラリです.Muiの例よりも多く、公式文書にもCustomの方法があるので、Muiよりも分かりやすい.
yarn add react-datepicker
() => {
const [startDate, setStartDate] = useState(new Date());
return (
<DatePicker selected={startDate} onChange={(date) => setStartDate(date)} />
);
};
日付セレクタ、日付範囲セレクタ、時間セレクタなど様々な機能があります.
しかしreact-datepickerもカスタマイズしにくい.
プロジェクトでnext.jsを使用してcssをインポートしてからブロックされました.
next.jsからcssをインポートするには、グローバルcssとして指定する必要があります.この部分はnextですjsに詳しいメンバーの助けで
ライブラリをカスタマイズすると、cssが望ましくない部分:not演算子に適用される場合が多い.
🕒 dayjs
const start = dayjs(startDate);
const end = dayjs(endDate);
const startFormat = start.format("YYYY-MM-DD");
const endFormat = end.format("YYYY-MM-DD");
const diff = Math.floor(end.diff(start, "day", true)); // 날짜 차이
dayjsは、日付と時刻を出力するライブラリです.
カレンダーで受け取った日付をdayjs()に入れて、自分で
データを返します.
このデータはformatで目的のdate formatに設定できます.
上記の例は「YYYY-MM-DD」としてフォーマットされています.
結果は2022-03-15
であった.
💡 感じた
- ライブラリは必ずしも良い
ではありません.- はライブラリではなく直接実施する必要があります
-チームメンバーはカレンダーを直接実現したいが、直接実現すればカスタマイズが容易に見える.(『del>時間があまりない』) - CSSも勉強内容がたくさんあります.
- 世界には様々なライブラリが存在しています.
さまざまなライブラリを体験してみましょう
-チームメンバーはカレンダーを直接実現したいが、直接実現すればカスタマイズが容易に見える.(『del>時間があまりない』)
Reference
この問題について(Calendar 📆 & dayjs), 我々は、より多くの情報をここで見つけました https://velog.io/@bgo517/Calendar-dayjsテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol