$ cnpm install @uyun/ec-side-menu
基于 Layout.Sider
和 Menu
二次开发的侧边栏导航菜单。
作者:沈挺
侧边菜单作为网站中的重要组成部分,提供了多级结构来收纳和排列网站架构,用户以此在各个页面中进行跳转或其它功能性操作。
通过配置 items
属性描述菜单的结构。
import { Link } from 'react-router-dom'
const items = [
{
key: 'nav',
type: 'link',
icon: 'nav',
name: '导航',
path: 'nav'
}
]
<SideMenu
items={items}
Link={Link}
/>
容器。
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
style | 容器 style | object | - |
className | 容器 className | string | - |
menuStyle | 导航区域 style | object | - |
menuClassName | 导航区域 className | string | - |
belowMenuStyle | 底部功能区域 style | object | - |
belowMenuClassName | 底部功能区域 className | string | - |
items | 子菜单的配置描述,具体项见下表 | ItemProps[] | - |
Link | react-router 的 Link 组件 |
ReactNode | - |
theme | 主题颜色 | string: white blue dark |
white |
collapsed | 容器当前收起状态 | boolean | - |
mode | 侧边菜单的模式,设置为 auto 时,会根据路由中的 hash 来决定 selectedKeys ,并响应路由变化 |
string: default auto |
default |
isSelectedKey | 当 mode 为 auto 时的默认行为无法满足需求时,用 isSelectedKey 函数来决定选中哪个子菜单 |
function(item): boolean | - |
openCurrentOnly | 是否只展开当前父级菜单 | boolean | true |
defaultOpenKeys | 内嵌菜单初始展开的菜单项 key 数组,mode 为 auto 时无效 |
string[] | - |
defaultSelectedKeys | 初始选中的子菜单项 key 数组,mode 为 auto 时无效 |
string[] | - |
openKeys | 内嵌菜单当前展开的菜单项 key 数组,mode 为 auto 时无效 |
string[] | - |
selectedKeys | 当前选中的子菜单项 key 数组,mode 为 auto 时无效 |
string[] | - |
onCollapse | 容器展开/收起时的回调,有点击 trigger 以及响应式反馈两种触发方式 | function(collapsed, type) | - |
onOpenChange | 内嵌菜单展开/关闭时的回调 | function(openKeys: string[]) | - |
onSelect | 子菜单被选中时的回调 | function({ item, key, selectedKeys }) | - |
onClick | 子菜单被点击时的回调 | function({ item, key, keyPath }) | - |
子菜单属性描述,预设 5 种类型的子菜单,分别适用于不同场景和需求。
当 key
为无效值或 type
为非法值时,子菜单将不会被渲染。
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
key | 唯一标志 | string | - |
type | 类型,具体项见下表 | string: default link component sub group |
- |
below | 是否位于底部功能区域 | boolean | false |
default
默认菜单。提供默认样式,适用于进行编程式导航或其它功能性操作。
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
name | 名称 | string / ReactNode | - |
icon | 图标,可传 uyd 的 type 、iconfont iconfont-xxx 或自定义图标组件 |
string / ReactNode | - |
footer | 页脚,可对子菜单添加额外内容 | ReactNode | - |
link
导航菜单。与默认菜单类似,通过 Link
或 a
组件渲染菜单,适用于进行路由跳转等操作。
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
name | 名称 | string / ReactNode | - |
icon | 图标,可传 uyd 的 type 、iconfont iconfont-xxx 或自定义图标组件 |
string / ReactNode | - |
path | 路径,值为绝对路径时将渲染为 a |
string | - |
target | Link 或 a 的 target 属性 |
string | - |
footer | 页脚,可对子菜单添加额外内容 | ReactNode | - |
component
组件菜单。完全自定义的子菜单,适用于与业务有关的特殊组件。
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
component | 自定义组件 | ReactNode | - |
sub
内嵌菜单。具有展开/关闭的效果,适用于同类子菜单的分组。
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
name | 名称 | string / ReactNode | - |
icon | 图标,可传 uyd 的 type 、iconfont iconfont-xxx 或自定义图标组件 |
string / ReactNode | - |
path | 路径,与 children 中导航菜单的 path 进行拼接 |
string | - |
children | 子菜单的配置描述 | ItemProps[] | - |
group
分组菜单。也适用于分组的场景,但不具有图标和展开/关闭的效果,且容器收起时,标题将会隐藏。
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
name | 名称 | string / ReactNode | - |
path | 路径,与 children 中导航菜单的 path 进行拼接 |
string | - |
children | 子菜单的配置描述 | ItemProps[] | - |
Copyright 2013 - present © cnpmjs.org