開關
開關是一種 UI 元素,可讓使用者在兩種狀態之間做選擇——最常見的是開啟/關閉。
Switch API
Import
import { Switch } from '@mui/base/Switch';
// or
import { Switch } from '@mui/base';
閱讀這篇關於最小化套件大小的指南,以了解差異。
原生元件的 Props 也可用。
名稱 | 類型 | 預設值 | 描述 |
---|---|---|---|
checked | bool | - | 若為 |
className | string | - | 套用至根元素的類別名稱。 |
defaultChecked | bool | - | 預設的核取狀態。當元件不受控制時使用。 |
disabled | bool | - | 若為 |
onChange | func | - | 當狀態變更時觸發的回呼函式。 簽名: function(event: React.ChangeEvent<htmlinputelement>) => void</htmlinputelement>
|
readOnly | bool | - | 若為 |
required | bool | - | 若為 |
slotProps | { input?: func | object, root?: func | object, thumb?: func | object, track?: func | object } | {} | 用於 Switch 內每個 slot 的 props。 |
slots | { input?: elementType, root?: elementType, thumb?: elementType, track?: elementType | null } | {} | 用於 Switch 內每個 slot 的元件。可以是字串(使用 HTML 元素)或元件。 請參閱下方Slots API以了解更多詳細資訊。 |
ref
會轉發到根元素。若要了解如何自訂 slot,請查看覆寫元件結構指南。
Slot 名稱 | 類別名稱 | 預設元件 | 描述 |
---|---|---|---|
root | .base-Switch-root | 'span' | 呈現根元件的元件。 |
input | .base-Switch-input | 'input' | 呈現 input 的元件。 |
thumb | .base-Switch-thumb | 'span' | 呈現 thumb 的元件。 |
track | .base-Switch-track | 'span' | 呈現 track 的元件。 |
這些類別名稱對於使用 CSS 設定樣式很有用。它們會在觸發特定狀態時套用至元件的 slots。
類別名稱 | 描述 |
---|---|
.base--checked | 若開關被核取,則套用至根元素的狀態類別 |
.base--disabled | 若開關被停用,則套用至根元素的狀態類別 |
.base--focusVisible | 若開關具有可見焦點,則套用至根元素的狀態類別 |
.base--readOnly | 若開關為唯讀,則套用至根元素的類別 |