You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
3.2 KiB

---
category: Components
cols: 1
type: Navigation
title: Menu
---
Menu list of Navigation.
8 years ago
## When To Use
Navigation menu is important for a website, it helps users jump from one site section to another quickly. Mostly, it includes top navigation and side navigation. Top navigation provides all the category and functions of the website. Side navigation provides the Multi-level structure of the website.
8 years ago
More layouts with navigation: [layout](/components/layout).
## API
```html
<Menu>
<Menu.Item>Menu</Menu.Item>
<SubMenu title="SubMenu">
<Menu.Item>SubMenuItem</Menu.Item>
</SubMenu>
</Menu>
```
8 years ago
### Menu
| Param | Description | Type | Default value |
|----------|---------------|----------|--------------|
| theme | color of the theme | string: `light` `dark` | `light` |
| mode | type of the menu; vertical, horizontal, and inline modes are supported | string: vertical horizontal inline | vertical |
| selectable | allow selecting menu items | boolean | true |
| selectedKeys | array with the keys of currently selected menu items | string[] | |
| defaultSelectedKeys | array with the keys of default selected menu items | string[] | |
| openKeys | array with the keys of currently opened sub menus | string[] | |
| defaultOpenKeys | array with the keys of default opened sub menus | | |
| onOpenChange | called when open/close sub menu | function(openKeys: string[]) | noop |
| onSelect | callback of the selected item | function({ item, key, selectedKeys }) | none |
| onDeselect | callback of the deselected item, only supported for multiple mode | function({ item, key, selectedKeys }) | - |
| onClick | callback when click menu item, params: {item, key, keyPath} | function({ item, key, keyPath }) | - |
| style | style of the root node | object | |
| inlineIndent | indent px of inline menu item on each level | number | 24 |
| multiple | Allow select multiple item | boolean | false |
| inlineCollapsed | specified the collapsed status when menu is inline mode | boolean | - |
| selectable | Allow to be selected | boolean | true |
> More options in [rc-menu](https://github.com/react-component/menu#api)
8 years ago
### Menu.Item
| Param | Description | Type | Default value |
|----------|----------------|----------|--------------|
| disabled | disabled or not | boolean | false |
| key | unique id of the menu item | string | |
8 years ago
### Menu.SubMenu
| Param | Description | Type | Default value |
|----------|----------------|----------|--------------|
| disabled | disabled or not | boolean | false |
| key | unique id of the menu item | string | |
| title | title of the sub menu | string\|ReactNode | |
| children | sub menus or sub menu items | Array<MenuItem\|SubMenu> | |
| onTitleClick | callback of the clicked sub menu title | function({ key, domEvent }) | |
8 years ago
### Menu.ItemGroup
| Param | Description | Type | Default value |
|----------|----------------|----------|--------------|
| title | title of the group | string\|ReactNode | |
| children | sub menu items | MenuItem[] | |
### Menu.Divider
divider line in between menu items, only used in vertical popup Menu or Dropdown Menu.