Skip to content

Tabbar 底部导航栏

基础用法

  • 支持字体图标、图片,样式自由可调,可以设置角标
  • 支持拦截鉴权,详见 Demo
  • 最大支持5个子项
vue
<template>
	<sn-page padding="0"
	:scroll-on="false">
		<sn-tabbar :data="data">
			<template #1>
				<sub1></sub1>
			</template>
			<template #2>
				<sub2></sub2>
			</template>
			<template #3>
				<sub3></sub3>
			</template>
			<template #4>
				<sub4></sub4>
			</template>
		</sn-tabbar>
	</sn-page>
</template>
typescript
import { $snui, SnTabbarItem } from `@/uni_modules/sinle-ui`
import Sub1 from `./sub1.uvue`
import Sub2 from `./sub2.uvue`
import Sub3 from `./sub3.uvue`
import Sub4 from `./sub4.uvue`
	
const data = [
	{
		icon: `home-5-line`,
		text: `首页`,
		activeIcon: `home-5-fill`
	},
	{
		icon: `community-line`,
		text: `社区`,
    	activeIcon: `community-fill`,
	},
	{
		icon: `message-3-line`,
		text: `消息`,
		activeIcon: `message-3-fill`,
	},
	{
		icon: `user-3-line`,
		text: `我的`,
		activeIcon: `user-3-fill`,
	}
] as SnTabbarItem[]

更多演示请下载 demo 查看

使用方法

重要说明

每个子页面必须导入到放置 sn-tabbar 的页面,如上示例。

导入的子页面绝对不可以pages.json 注册!!!否则会报错。如果创建新的子页面,在 HBuilderX 创建页面时不要勾选下方的“在 pages.json 注册” 。如果页面已经注册,请前往 pages.json 文件删除此页面。

属性

参数说明类型默认值可选值
data底部导航栏数据,每一项都需与插槽一 一匹配,最大5项Array<SnTabbarItem>[]-
index首次加载时显示的页面索引(注意,索引从1开始一直到5,插槽名称也是一样)Number0-
fixed是否固定底部(一般开发不会用到此属性,除非你有 Demo 中那样的展示需求)Booleantruetrue | false
showPages是否显示子页面(一般开发不会用到此属性,除非你有 Demo 中那样的展示需求)Booleantruetrue |false
imageSize子项图片大小String35px-
padding内边距String5px-
margin外边距String0px-
bgColor背景颜色String$front-
itemBorderRadius子项边框圆角大小(一般情况不需要设置,组件内部会根据导航栏圆角自动计算最合适的大小)String--
itemPadding子项内边距String0px-
itemSpacing各子项之间的间距String0px-
itemBgColor子项背景颜色String$transparent-
itemActiveBgColor选中时子项的背景颜色String$transparent-
border导航栏边框String--
borderRadius导航栏圆角大小String0-
textColor子项文本颜色String$text-
textSize子项文本大小String$0-
activeTextColor选中时子项文本颜色String$primary-
iconColor子项图标颜色String$text-
iconSize子项图标大小String$4-
activeIconColor选中时子项图标颜色String$primary-
disabled是否禁用导航栏Booleanfalsetrue |false
customStyle自定义样式(仅导航栏)UTSJSONObject{}-
customContainStyle自定义容器样式(包含子页面和底部导航栏)UTSJSONObject{}-

插槽

注意

页面的索引从1开始一直到5,插槽名称也是一样。

data 属性的子项必须和插槽一 一匹配,有多少个子项,就放多少个插槽。

名称说明
1第1个子页面
2第2个子页面
3第3个子页面
4第4个子页面
5第5个子页面

方法

名称参数返回值描述
changeToIndex(index: number)-切换到指定索引(从 1 开始一直到 5)的页面

事件

事件名类型描述
change(index: number)=>void页面切换时触发
heightchange(height: number)=>void底部导航栏高度变化时触发

使用 MIT 协议