---
name: Menu
menu: Components
---

# Menu
import Menu, {MenuItem, MenuWrapper} from './index'
import { menuContext } from './lib/context';
import './style/index.scss'
import { Playground, Props } from 'docz'

## Props & Methods
### Menu
<Props of={Menu} />

### MenuItem
<Props of={MenuItem} />

### MenuWrapper
<Props of={MenuWrapper}/>

## Basic Usage
<Playground>
{() => {
    class Example extends React.Component{
        constructor(props) {
            super(props);
            this.onClick = this.onClick.bind(this);
            this.onClickSubMenu = this.onClickSubMenu.bind(this);
        }
        onClick(e, itemKey){
            alert(`click menu item: ${itemKey}`);
        }
        onClickSubMenu(e, itemKey){
            alert(`click menu title: ${itemKey}`);
        }
        render() {
            return (
                <MenuWrapper
                    onClick={this.onClick}
                    onClickSubMenu={this.onClickSubMenu}>
                    <Menu>
                        <MenuItem name="active">
                            Active
                        </MenuItem>
                        <MenuItem name="link">
                            <a href="https://ant.design" target="_blank" rel="noopener noreferrer">Link</a>
                        </MenuItem>
                        <MenuItem name="disabled" disabled>
                            Disabled
                        </MenuItem>
                        <MenuItem name="submenu" spread={
                            <Menu>
                                <MenuItem name="Option 1">Option 1</MenuItem>
                                <MenuItem name="Option 2">Option 2</MenuItem>
                                <MenuItem name="Option 3">Option 3</MenuItem>
                                <MenuItem name="Option 4">Option 4</MenuItem>
                            </Menu>
                        }>
                            <span>Submenu</span>
                        </MenuItem>
                    </Menu>
                </MenuWrapper>
            );
        }
    }
    return <Example />
}
}
</Playground>

## Horizontal
<Playground>
{() => {
    class Example extends React.Component{
        constructor(props) {
            super(props);
            this.onClick = this.onClick.bind(this);
            this.onClickSubMenu = this.onClickSubMenu.bind(this);
        }
        onClick(e, itemKey){
            alert(`click menu item: ${itemKey}`);
        }
        onClickSubMenu(e, itemKey){
            alert(`click menu title: ${itemKey}`);
        }
        render() {
            return (
                <MenuWrapper
                    onClick={this.onClick}
                    onClickSubMenu={this.onClickSubMenu}>
                    <Menu mode='horizontal'>
                    <MenuItem name="active">
                        Active
                    </MenuItem>
                    <MenuItem name="link">
                        <a href="https://ant.design" target="_blank" rel="noopener noreferrer">Link</a>
                    </MenuItem>
                    <MenuItem name="disabled" disabled>
                        Disabled
                    </MenuItem>
                    <MenuItem name="submenu" spread={
                        <Menu>
                        <MenuItem name="Option 1">Option 1</MenuItem>
                        <MenuItem name="Option 2">Option 2</MenuItem>
                        <MenuItem name="Option 3">Option 3</MenuItem>
                        <MenuItem name="Option 4">Option 4</MenuItem>
                        </Menu>
                    }>
                        <span>Submenu</span>
                    </MenuItem>
                    </Menu>
                </MenuWrapper>
            );
        }
    }
    return <Example />
}
}
</Playground>

