侧边索引,适用于通讯录等长列表快速定位。
示例图



基础用法
页面 .json 文件 usingComponents 中引入组件
// json
{
"usingComponents": {
"mx-index-bar": "/components/mxwui/index-bar/index"
}
}页面 .wxml 文件中使用组件
<mx-index-bar list="{{list}}" />更多用法示例
分组列表 list
属性:list,数组。按索引分组的数据,用于渲染列表内容。
参数:index,分组索引标识,需与侧边索引对应。
参数:children,该分组下的列表项。
参数:children[x].name,名称。
参数:children[x].desc,描述,可选。
参数:children[x].avatar,头像地址,可选。
// js
data: {
list: [
{
index: 'A',
children: [
{name: '安安', desc: '描述', avatar: ''},
{name: '阿伟'},
]
},
{
index: 'B',
children: [
{name: '白杨'},
]
}
]
}<mx-index-bar list="{{list}}" />索引数组 items
属性:items,数组。侧边索引项,不传则从 list 的 index 自动生成。
参数:label,索引标识。
参数:disablePreview,是否禁用选中时的预览气泡,可选。
也支持直接传字符串数组,如 ['A','B','C']。
// js
data: {
items: [
{label: 'A'},
{label: 'B', disablePreview: true},
{label: '#'},
]
}<mx-index-bar list="{{list}}" items="{{items}}" />仅展示侧边索引(列表内容自行实现)时,可只传 items,通过 bind:change 自行滚动定位:
<mx-index-bar items="{{items}}" bind:change="handleChange">
<!-- 自定义内容 -->
</mx-index-bar>默认索引 defaultCurrent
属性:defaultCurrent,默认选中的索引值,如 A。
<mx-index-bar list="{{list}}" defaultCurrent="H" />受控索引 current
属性:current,受控当前索引值。传入后由外部控制高亮索引。
<mx-index-bar list="{{list}}" current="{{current}}" />索引尺寸 size
属性:size,默认 16,数字,单位 px,控制侧边每个索引的宽高。
<mx-index-bar list="{{list}}" size="18" />组件高度 height
属性:height,默认 100%,带单位,如 100%、80vh、1000rpx。
<mx-index-bar list="{{list}}" height="80vh" />激活态颜色 activeColor
属性:activeColor,默认主题色 #CA0E2D,支持任何合法的颜色值。
<mx-index-bar list="{{list}}" activeColor="#1677FF" />索引文字颜色 textColor
属性:textColor,默认 #9AA0B1,支持任何合法的颜色值。
<mx-index-bar list="{{list}}" textColor="#656979" />预览气泡背景色 tipBgColor
属性:tipBgColor,默认 #CCCCCC,支持任何合法的颜色值。
<mx-index-bar list="{{list}}" tipBgColor="#1677FF" />预览气泡文字色 tipColor
属性:tipColor,默认 #FFFFFF,支持任何合法的颜色值。
<mx-index-bar list="{{list}}" tipColor="#FFFFFF" />分组标题背景色 headerBgColor
属性:headerBgColor,默认 #F8F9FA,支持任何合法的颜色值。
<mx-index-bar list="{{list}}" headerBgColor="#EFF0F5" />分组标题文字色 headerColor
属性:headerColor,默认 #656979,支持任何合法的颜色值。
<mx-index-bar list="{{list}}" headerColor="#040A23" />是否吸顶 sticky
属性:sticky,默认 true,分组标题是否吸顶。
<mx-index-bar list="{{list}}" sticky />
<mx-index-bar list="{{list}}" sticky="{{false}}" />是否显示头像 showAvatar
属性:showAvatar,默认 true。
<mx-index-bar list="{{list}}" showAvatar />
<mx-index-bar list="{{list}}" showAvatar="{{false}}" />头像尺寸 avatarSize
属性:avatarSize,默认 72,数字,不带单位,默认使用 rpx。
<mx-index-bar list="{{list}}" avatarSize="96" />自定义事件
事件:bind:change,索引改变时触发,返回 item、index、label。
事件:bind:select,点击列表项时触发,返回 item、group、index、groupIndex。
<mx-index-bar
list="{{list}}"
bind:change="handleChange"
bind:select="handleSelect"
/>参数
| 参数 | 类型 | 必填 | 可选值 | 默认值 | 参数描述 |
|---|---|---|---|---|---|
| list | Array | 分组列表数据 | |||
| items | Array | 侧边索引数组,不传则从 list 自动生成 | |||
| current | String | 受控当前索引 | |||
| defaultCurrent | String | 默认索引 | |||
| size | Number | 数字 | 16 |
索引尺寸(宽高,单位 px) | |
| height | String | 100% |
组件高度,带单位 | ||
| activeColor | String | 颜色值 | #CA0E2D |
激活态颜色 | |
| textColor | String | 颜色值 | #9AA0B1 |
索引文字颜色 | |
| tipBgColor | String | 颜色值 | #CCCCCC |
预览气泡背景色 | |
| tipColor | String | 颜色值 | #FFFFFF |
预览气泡文字色 | |
| headerBgColor | String | 颜色值 | #F8F9FA |
分组标题背景色 | |
| headerColor | String | 颜色值 | #656979 |
分组标题文字色 | |
| sticky | Boolean | true、false |
true |
分组标题是否吸顶 | |
| showAvatar | Boolean | true、false |
true |
是否显示头像 | |
| avatarSize | Number | 数字 | 72 |
头像尺寸,不带单位,默认使用 rpx |
list
| 参数 | 类型 | 必填 | 可选值 | 默认值 | 参数描述 |
|---|---|---|---|---|---|
| index | String | 是 | 分组索引标识 | ||
| children | Array | 是 | 该分组下的列表项 |
list.children
| 参数 | 类型 | 必填 | 可选值 | 默认值 | 参数描述 |
|---|---|---|---|---|---|
| name | String | 是 | 名称 | ||
| desc | String | 描述 | |||
| avatar | String | 头像地址 |
items
| 参数 | 类型 | 必填 | 可选值 | 默认值 | 参数描述 |
|---|---|---|---|---|---|
| label | String | 是 | 索引标识 | ||
| disablePreview | Boolean | true、false |
是否禁用选中时的预览气泡 |
事件
| 事件名称 | 类型 | 返回值 | 事件说明 |
|---|---|---|---|
| bind:change | Change | {item, index, label} |
索引改变时触发 |
| bind:select | Click | {item, group, index, groupIndex} |
点击列表项时触发 |
其他说明
- 组件需要有明确高度(父容器或
height),侧边索引与列表才能正常联动。 - 微信小程序不支持作用域插槽,结合列表的内容渲染请使用
list数据驱动;仅侧边栏场景可用默认插槽自定义内容。