uView Tabbar 底部导航栏

简介: uView Tabbar 底部导航栏
优点:

此组件提供了自定义tabbar的能力,具有如下特点:

  • 图标可以使用字体图标(内置图标和扩展图标)或者图片
  • 可以动态切换菜单的数量以及配置
  • 切换菜单之前,可以进行回调鉴权
  • 可以设置角标或数字化提示
  • 有效防止组件区域高度塌陷,无需给父元素额外的内边距或者外边距来避开导航的区域

#平台差异说明

App(vue) App(nvue) H5 小程序

#基本使用

推荐您使用list数组遍历循环,案例使用基础方式构建,请根据click事件回调进行后续逻辑操作。

<u-tabbar
  :value="value1"
  @change="change1"
  :fixed="false"
  :placeholder="false"
  :safeAreaInsetBottom="false"
>
  <u-tabbar-item text="首页" icon="home" @click="click1" ></u-tabbar-item>
  <u-tabbar-item text="放映厅" icon="photo" @click="click1" ></u-tabbar-item>
  <u-tabbar-item text="直播" icon="play-right" @click="click1" ></u-tabbar-item>
  <u-tabbar-item text="我的" icon="account" @click="click1" ></u-tabbar-item>
</u-tabbar>
<!-- js -->
value1: 0,
click1(e) {
  console.log('click1', e);
}

copy

#显示徽标

使用dot属性添加--小点--类型徽标,使用badge属性添加--数字--类型徽标。您也可以使用:badge='badge'动态设置徽标数量, 这在消息盒子的展示中是比较好用的功能,

<u-tabbar
  :value="value2"
  :placeholder="false"
  @change="name => value2 = name"
  :fixed="false"
  :safeAreaInsetBottom="false"
>
  <u-tabbar-item text="首页" icon="home" dot ></u-tabbar-item>
  <u-tabbar-item text="放映厅" icon="photo" badge="3"></u-tabbar-item>
  <u-tabbar-item text="直播" icon="play-right" ></u-tabbar-item>
  <u-tabbar-item text="我的" icon="account" ></u-tabbar-item>
</u-tabbar>
<!-- data -->
value2: 1,

copy

#匹配标签的名称

<u-tabbar
:placeholder="false"
:value="value3"
@change="name => value3 = name"
:fixed="false"
:safeAreaInsetBottom="false"
>
  <u-tabbar-item text="首页" icon="home" name="home"></u-tabbar-item>
  <u-tabbar-item text="放映厅" icon="photo" name="photo" ></u-tabbar-item>
  <u-tabbar-item text="直播" icon="play-right" name="play-right"></u-tabbar-item>
  <u-tabbar-item text="我的" name="account" icon="account" ></u-tabbar-item>
</u-tabbar>
<!-- data -->
value3: 'play-right',

copy

#自定义图标/颜色

如您需要自定义图标/颜色,在u-tabbar-item标签中使用插槽active-iconinactive-icon来定义图标和颜色

<u-tabbar
  :value="value4"
  @change="name => value4 = name"
  :fixed="false"
  :placeholder="false"
  activeColor="#d81e06"
  :safeAreaInsetBottom="false"
>
  <u-tabbar-item text="首页">
    <image
      class="u-page__item__slot-icon"
      slot="active-icon"
      src="https://cdn.uviewui.com/uview/common/bell-selected.png"
    ></image>
    <image
      class="u-page__item__slot-icon"
      slot="inactive-icon"
      src="https://cdn.uviewui.com/uview/common/bell.png"
    ></image>
  </u-tabbar-item>
  <u-tabbar-item text="放映厅" icon="photo" ></u-tabbar-item>
  <u-tabbar-item text="直播" icon="play-right" ></u-tabbar-item>
  <u-tabbar-item text="我的" icon="account" ></u-tabbar-item>
</u-tabbar>
<!-- data -->
value4: 0,

copy

#拦截切换事件(点击第二个标签)

在切换事件中,处理拦截事件或者您其他js操作逻辑。

<u-tabbar
  :value="value5"
  :fixed="false"
  @change="change5"
  :safeAreaInsetBottom="false"
  :placeholder="false"
>
  <u-tabbar-item text="首页" icon="home" ></u-tabbar-item>
  <u-tabbar-item text="放映厅" icon="photo" ></u-tabbar-item>
  <u-tabbar-item text="直播" icon="play-right" ></u-tabbar-item>
  <u-tabbar-item text="我的" icon="account" ></u-tabbar-item>
</u-tabbar>
<!-- data -->
value5: 0,
<!-- js -->
change5(name) {
  if (name === 1) return uni.$u.toast('请您先登录')
  else this.value5 = name
},

copy

#边框

组件默认带了顶部边框,如果不需要,配置borderfalse即可。

<u-tabbar
  :value="value7"
  :placeholder="false"
  :border="false"
  @change="name => value7 = name"
  :fixed="false"
  :safeAreaInsetBottom="false"
>
  <u-tabbar-item text="首页" icon="home" ></u-tabbar-item>
  <u-tabbar-item text="放映厅" icon="photo" ></u-tabbar-item>
  <u-tabbar-item text="直播" icon="play-right" ></u-tabbar-item>
  <u-tabbar-item text="我的" icon="account" ></u-tabbar-item>
</u-tabbar>
<!-- data -->
value7: 3

copy

#固定在底部(固定在屏幕最下方)

与原生效果无异,但您可以按照api配置您需要的其他配置,如徽标,边框等

<u-tabbar
  :value="value6"
  @change="name => value6 = name"
  :fixed="true"
  :placeholder="true"
  :safeAreaInsetBottom="true"
>
  <u-tabbar-item text="首页" icon="home" ></u-tabbar-item>
  <u-tabbar-item text="放映厅" icon="photo" ></u-tabbar-item>
  <u-tabbar-item text="直播" icon="play-right" ></u-tabbar-item>
  <u-tabbar-item text="我的" icon="account" ></u-tabbar-item>
</u-tabbar>
<!-- data -->
value6: 0,
相关文章
|
移动开发 JavaScript 小程序
uniapp中间加号点击弹窗怎么实现?完整教程
uniapp中间加号点击弹窗怎么实现?完整教程
1193 1
uniapp中间加号点击弹窗怎么实现?完整教程
|
小程序
uni-app:刷新当前页面
执行这三行代码就可以实现uniapp刷新当前页面。
4732 0
|
前端开发 API
uniapp中为什么会出现跨域问题,如何解决
uniapp中为什么会出现跨域问题,如何解决
4627 0
|
移动开发 小程序
uniapp自定义tabbar,中间凸起(支持H5、微信小程序)
uniapp自定义tabbar,中间凸起(支持H5、微信小程序)
uniapp自定义tabbar,中间凸起(支持H5、微信小程序)
|
小程序 数据安全/隐私保护
吐血整理的几十款小程序登陆界面【附完整代码】(一)
吐血整理的几十款小程序登陆界面【附完整代码】
12775 1
吐血整理的几十款小程序登陆界面【附完整代码】(一)
|
存储 前端开发 Java
Element-UI中el-upload上传组件(demo详解)
案例详解Element-UI中el-upload上传组件,一起打卡学习吧!
2175 0
Element-UI中el-upload上传组件(demo详解)
|
8月前
|
人工智能 搜索推荐 数据可视化
Manus:或将成为AI Agent领域的标杆
随着人工智能技术的飞速发展,AI Agent(智能体)作为人工智能领域的重要分支,正逐渐从概念走向现实,并在各行各业展现出巨大的应用潜力。在众多AI Agent产品中,Manus以其独特的技术优势和市场表现,有望成为该领域的标杆。作为资深AI工程师,本文将深入探讨Manus的背景知识、主要业务场景、底层原理、功能的优缺点,并尝试使用Java搭建一个属于自己的Manus助手,以期为AI Agent技术的发展和应用提供参考。
12919 19
|
11月前
|
人工智能 前端开发 Java
Spring AI Alibaba + 通义千问,开发AI应用如此简单!!!
本文介绍了如何使用Spring AI Alibaba开发一个简单的AI对话应用。通过引入`spring-ai-alibaba-starter`依赖和配置API密钥,结合Spring Boot项目,只需几行代码即可实现与AI模型的交互。具体步骤包括创建Spring Boot项目、编写Controller处理对话请求以及前端页面展示对话内容。此外,文章还介绍了如何通过添加对话记忆功能,使AI能够理解上下文并进行连贯对话。最后,总结了Spring AI为Java开发者带来的便利,简化了AI应用的开发流程。
8744 2
Spring AI Alibaba + 通义千问,开发AI应用如此简单!!!
|
小程序 程序员
【uniapp微信小程序】自定义导航栏:非首页展示的实现方式(极为快捷方式)
【uniapp微信小程序】自定义导航栏:非首页展示的实现方式(极为快捷方式)
735 0