IndexBar 索引栏 - Vant 4
📑 IndexBar 索引栏
🎯 介绍
IndexBar 组件就像是一个贴心的"导航小助手" 🧭!它为长列表提供了快速定位功能,让用户能够像翻字典一样迅速找到想要的内容。无论是通讯录、城市列表还是商品分类,都能让用户享受丝滑的浏览体验,告别无尽的滚动之苦!
📦 引入
通过以下方式来全局注册组件,更多注册方式请参考组件注册。
js
import { createApp } from'vue'; import { IndexBar, IndexAnchor } from'vant'; const app = createApp(); app.use(IndexBar); app.use(IndexAnchor);🚀 代码演示
🔧 基础用法
点击索引栏时,会自动跳转到对应的 IndexAnchor 锚点位置,就像瞬间传送一样神奇!✨
html
🎨 自定义索引列表
可以通过 index-list 属性自定义展示的索引字符列表,让索引栏变身为你专属的导航工具!无论是数字、字母还是特殊符号,都能轻松驾驭。
html
js
exportdefault { setup() { return { indexList: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], }; }, };API
IndexBar Props
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| index-list | 索引字符列表 | *(string | number)[]* |
| z-index | z-index 层级 | *number | string* |
| sticky | 是否开启锚点自动吸顶 | boolean | true |
| sticky-offset-top | 锚点自动吸顶时与顶部的距离 | number | 0 |
| highlight-color | 索引字符高亮颜色 | string | #1989fa |
| teleport | 指定索引栏挂载的节点 | *string | Element* |
IndexAnchor Props
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| index | 索引字符 | *number | string* |
IndexBar Events
| 事件名 | 说明 | 回调参数 |
|---|---|---|
| select | 点击索引栏的字符时触发 | *index: number |
| change | 当前高亮的索引字符变化时触发 | *index: number |
IndexBar 方法
通过 ref 可以获取到 IndexBar 实例并调用实例方法,详见组件实例方法。
| 方法名 | 说明 | 参数 | 返回值 |
|---|---|---|---|
| scrollTo | 滚动到指定锚点 | *index: number | string* |
类型定义
组件导出以下类型定义:
ts
importtype { IndexBarProps, IndexAnchorProps, IndexBarInstance } from'vant';IndexBarInstance 是组件实例的类型,用法如下:
ts
import { ref } from'vue'; importtype { IndexBarInstance } from'vant'; const indexBarRef = ref<IndexBarInstance>(); indexBarRef.value?.scrollTo('B');IndexAnchor Slots
| 名称 | 说明 |
|---|---|
| default | 锚点位置显示内容,默认为索引字符 |
主题定制
样式变量
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件。
| 名称 | 默认值 | 描述 |
|---|---|---|
| --van-index-bar-sidebar-z-index | 2 | - |
| --van-index-bar-index-font-size | var(--van-font-size-xs) | - |
| --van-index-bar-index-line-height | var(--van-line-height-xs) | - |
| --van-index-bar-index-active-color | var(--van-primary-color) | - |
| --van-index-anchor-z-index | 1 | - |
| --van-index-anchor-padding | 0 var(--van-padding-md) | - |
| --van-index-anchor-text-color | var(--van-text-color) | - |
| --van-index-anchor-font-weight | var(--van-font-bold) | - |
| --van-index-anchor-font-size | var(--van-font-size-md) | - |
| --van-index-anchor-line-height | 32px | - |
| --van-index-anchor-background | transparent | - |
| --van-index-anchor-sticky-text-color | var(--van-primary-color) | - |
| --van-index-anchor-sticky-background | var(--van-background-2) | - |
📚 相关文档
📋 列表组件
- List 列表 - 列表组件,与索引栏完美搭配的数据展示利器
- Cell 单元格 - 单元格组件,构建列表项的基础组件
- ContactList 联系人列表 - 联系人列表组件,索引栏的经典应用场景
🎯 导航组件
- NavBar 导航栏 - 导航栏组件,页面顶部导航
- Tabbar 标签栏 - 标签栏组件,底部导航
- Sidebar 侧边导航 - 侧边导航组件,另一种导航方式
🔍 搜索与定位
- Search 搜索 - 搜索组件,快速查找内容的另一种方式
- Sticky 粘性定位 - 粘性定位组件,实现吸顶效果的核心
- BackTop 回到顶部 - 回到顶部组件,长列表的贴心助手
🎨 设计组件
- ConfigProvider 全局配置 - 全局配置组件,统一管理主题样式
- Locale 国际化 - 国际化组件,多语言支持
🛠️ 开发指南
- Advanced Usage 进阶用法 - 进阶用法指南,组件实例方法详解
- Theme 主题定制 - 主题定制指南,打造专属视觉风格