この記事ではReactの『Material UI(MUI)のCheckboxコンポーネント』について、
- Material UIのCheckboxコンポーネントの使い方
- Checkboxにラベルを追加する方法(
FormControlLabel
を使う) - Checkboxコンポーネントの属性
などを図を用いて分かりやすく説明するように心掛けています。ご参考になれば幸いです。
Material UIのCheckboxコンポーネントの使い方
Material UI(MUI)を利用するためには、Material UIとEmotionをReactプロジェクトにインストールする必要があります。プロジェクト配下で以下のコマンドを実行してインストールしましょう。
Material UIとEmotionをインストールするコマンド
npm install @mui/material @emotion/react @emotion/styled
Material UIは内部的にEmotionを利用しているので、@emotion/react
と@emotion/styled
をインストールしています。なお、Emotionは、JavaScriptでCSSを記述するために作られたCSS-in-JSライブラリです。
以下に、Material UIのCheckbox
コンポーネントを使用したシンプルなサンプルコードを示しています。Material UIのCheckbox
コンポーネントを使用するためには、ReactコンポーネントにCheckbox
コンポーネントをインポートする必要があります。
import { Checkbox } from "@mui/material";
function App() {
return <Checkbox />;
}
export default App;
上記のサンプルコードを実行すると、以下のようになり、チェックボックスが表示されていることが分かります。
実際に使用する際の例
ただ、実際に使用する際には、以下のサンプルコードに示すようにchecked
属性やonChange
属性と共に使用します。
import { useState } from "react";
import { Checkbox } from "@mui/material";
function App() {
const [checked, setChecked] = useState(false);
const handleChange = (event) => {
setChecked(event.target.checked);
};
return <Checkbox checked={checked} onChange={handleChange} />;
}
export default App;
checked
属性でチェックボックスがチェックされているかどうかを制御しており、onChange
属性でチェックボックスの状態が変わったときに呼び出される関数を指定しています。また、Reactフックの1つであるuseState
を使用して、チェックボックスの状態を管理しています。
Checkboxにラベルを追加する方法(FormControlLabelを使う)
チェックボックスにラベルを追加するためには、FormControlLabel
コンポーネントを使用します。これにより、チェックボックスと一緒にテキストラベルを表示することができるようになります。以下にサンプルコードを示します。
import { Checkbox, FormControlLabel } from "@mui/material";
function App() {
return (
<>
<FormControlLabel control={<Checkbox />} label="Label" />
<FormControlLabel required control={<Checkbox />} label="Required" />
<FormControlLabel disabled control={<Checkbox />} label="Disabled" />
</>
);
}
export default App;
上記のサンプルコードを実行すると、以下のようになります。
FormControlLabel
はチェックボックスとラベルを一緒に表示するためのコンポーネントです。control
属性にはチェックボックスコンポーネントを指定します。label
属性にはチェックボックスに表示するラベルのテキストを指定します。また、required
属性を指定すると、チェックボックスが必須項目であることを示すことができます。disabled
属性を指定すると、チェックボックスを無効化することができます。
Checkboxコンポーネントの属性
では、これからMaterial UIのCheckbox
コンポーネントに指定できる以下の属性について、順番にサンプルコードを用いて説明します。
defaultChecked
属性disabled
属性checked
属性size
属性color
属性sx
属性icon
属性・checkedIcon
属性
defaultChecked属性
defaultChecked
属性は、チェックボックスが初期状態でチェックされているかどうかを指定します。defaultChecked
属性を指定すると、チェックボックスの初期状態をチェック済みにします。これにより、ページが読み込まれたときにチェックボックスがデフォルトでチェックされている状態になります。
以下にサンプルコードを示しています。
import { Checkbox } from '@mui/material';
function App() {
return (
<>
<Checkbox />
<Checkbox defaultChecked />
</>
);
}
export default App;
上記のサンプルコードを実行すると、以下のようになります。
disabled属性
disabled
属性は、チェックボックスを無効化するために使用します。disabled
属性がture
の時はチェックボックスが無効化されます。無効化すると、チェックボックスはユーザーによって操作できなくなります。
以下にサンプルコードを示しています。
import { Checkbox } from "@mui/material";
function App() {
return (
<>
<Checkbox />
<Checkbox disabled />
<Checkbox disabled={true} />
<Checkbox disabled={false} />
</>
);
}
export default App;
上記のサンプルコードを実行すると、以下のようになります。
checked属性
checked
属性は、チェックボックスがチェックされているかどうかを制御するために使用します。checked
属性がtrue
の時はチェックボックスがチェックされ、false
の場合はチェックされなくなります。
以下にサンプルコードを示しています。
import { Checkbox } from "@mui/material";
function App() {
return (
<>
<Checkbox />
<Checkbox checked />
<Checkbox checked={true} />
<Checkbox checked={false} />
</>
);
}
export default App;
上記のサンプルコードを実行すると、以下のようになります。
size属性
size
属性は、チェックボックスのサイズを指定するために使用します。指定できる値はsmall
, medium
, large
です。デフォルトはmedium
です。
以下にサンプルコードを示しています。
import { Checkbox } from "@mui/material";
function App() {
return (
<>
<Checkbox />
<Checkbox size="medium" />
<Checkbox size="large" />
<Checkbox size="small" />
</>
);
}
export default App;
上記のサンプルコードを実行すると、以下のようになります。
color属性
color
属性は、チェックボックスの色を指定するために使用します。指定できる値はdefault
, primary
, secondary
, error
, info
, success
です。
以下にサンプルコードを示しています。
import { Checkbox } from "@mui/material";
function App() {
return (
<>
<Checkbox defaultChecked />
<Checkbox color="default" defaultChecked />
<Checkbox color="primary" defaultChecked />
<Checkbox color="secondary" defaultChecked />
<Checkbox color="error" defaultChecked />
<Checkbox color="info" defaultChecked />
<Checkbox color="success" defaultChecked />
</>
);
}
export default App;
上記のサンプルコードを実行すると、以下のようになります。
sx属性
sx
属性は、スタイルをカスタマイズするために使用します。
以下にサンプルコードを示しています。
import { Checkbox } from "@mui/material";
import { pink } from "@mui/material/colors";
function App() {
return (
<>
<Checkbox defaultChecked />
<Checkbox sx={{ "& .MuiSvgIcon-root": { fontSize: 50 } }} />
<Checkbox
defaultChecked
sx={{
color: pink[800],
"&.Mui-checked": {
color: pink[600],
},
}}
/>
</>
);
}
export default App;
上記のサンプルコードを実行すると、以下のようになります。
上記のサンプルコードでは、.MuiSvgIcon-root
のスタイルを変更して、アイコンのサイズを50に設定しています。また.Mui-checked
のスタイルを変更して、チェックされた状態の色をピンクに設定しています。
icon属性・checkedIcon属性
icon
属性とcheckedIcon
属性を使用すると、チェックボックスのデフォルトのアイコンをカスタマイズすることができます。なお、マテリアルアイコンをMaterial UI(MUI)で利用するためには、以下のコマンドで@mui/icons-material
をインストールする必要があります。プロジェクト配下で以下のコマンド実行してインストールしましょう。
npm install @mui/icons-material
以下に、カスタムアイコンを使用したサンプルコードを示しています。
import { Checkbox } from "@mui/material";
import FavoriteBorder from "@mui/icons-material/FavoriteBorder";
import Favorite from "@mui/icons-material/Favorite";
import BookmarkBorderIcon from "@mui/icons-material/BookmarkBorder";
import BookmarkIcon from "@mui/icons-material/Bookmark";
function App() {
return (
<>
<Checkbox />
<Checkbox defaultChecked />
<Checkbox icon={<FavoriteBorder />} checkedIcon={<Favorite />} />
<Checkbox icon={<FavoriteBorder />} checkedIcon={<Favorite />} defaultChecked />
<Checkbox icon={<BookmarkBorderIcon />} checkedIcon={<BookmarkIcon />} />
<Checkbox icon={<BookmarkBorderIcon />} checkedIcon={<BookmarkIcon />} defaultChecked />
</>
);
}
export default App;
上記のサンプルコードを実行すると、以下のようになります。
icon
属性でチェックされていない状態のアイコンを指定します。checkedIcon
属性でチェックされている状態のアイコンを指定します。
本記事のまとめ
この記事ではReactの『Material UI(MUI)のCheckboxコンポーネント』について、以下の内容を説明しました。
- Material UIのCheckboxコンポーネントの使い方
- Checkboxにラベルを追加する方法(
FormControlLabel
を使う) - Checkboxコンポーネントの属性
お読み頂きありがとうございました。
また、以下にMaterial UI(MUI)のCheckboxコンポーネントに関するの公式ページを示します。
公式ページ
Material UIのCheckboxコンポーネントについて、詳しく知りたい方は以下の公式ページを参考にしてください。
マテリアルアイコンについて、詳しく知りたい方は以下の公式ページを参考にしてください。