先看下效果
实现步骤
1.先引入uview ui,不会的可以看下我另外一篇文章,写的很详细
uniapp 中uview-ui的使用教程
https://blog.csdn.net/hu104160112/article/details/120076812?spm=1001.2014.3001.5501
2.创建tabbar 组件及页面
3.pages.json文件中配置
{ "easycom": { "autoscan": true, "custom": { "^uni-(.*)": "@/components/uni-$1/uni-$1.vue", "^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue" } }, "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages { "path": "pages/tabbar/tabbar1", "style": { "navigationBarTitleText": "uni-app" } }, { "path": "pages/tabbar/tabbar2", "style": { "navigationBarTitleText": "uni-app" } }, { "path": "pages/tabbar/tabbar3", "style": { "navigationBarTitleText": "uni-app" } }, { "path": "pages/tabbar/tabbar4", "style": { "navigationBarTitleText": "uni-app" } }, { "path": "pages/tabbar/tabbar5", "style": { "navigationBarTitleText": "uni-app" } }, { "path": "pages/index/index", "style": { "navigationBarTitleText": "uni-app" } } ], "globalStyle": { "navigationBarTextStyle": "black", "navigationBarTitleText": "uni-app", "navigationBarBackgroundColor": "#F8F8F8", "backgroundColor": "#F8F8F8" }, "tabBar": { "list": [{ "pagePath": "pages/tabbar/tabbar1" }, { "pagePath": "pages/tabbar/tabbar2" },{ "pagePath": "pages/tabbar/tabbar3" },{ "pagePath": "pages/tabbar/tabbar4" },{ "pagePath": "pages/tabbar/tabbar5" }] } }
4.tabbar组件
<template> <view> <view class="u-page"> <!-- 所有内容的容器 --> </view> <!-- 与包裹页面所有内容的元素u-page同级,且在它的下方 --> <u-tabbar v-model="current" :list="list" :mid-button="true" active-color='#5098FF'></u-tabbar> </view> </template> <script> export default { data() { return { list: [{ iconPath: "home", selectedIconPath: "home-fill", text: '首页', isDot: true, customIcon: false, pagePath: '/pages/tabbar/tabbar1', }, { iconPath: "photo", selectedIconPath: "photo-fill", text: '放映厅', customIcon: false, pagePath: '/pages/tabbar/tabbar2', }, { iconPath: "https://cdn.uviewui.com/uview/common/min_button.png", selectedIconPath: "https://cdn.uviewui.com/uview/common/min_button_select.png", text: '发布', midButton: true, customIcon: false, pagePath: '/pages/tabbar/tabbar3', }, { iconPath: "play-right", selectedIconPath: "play-right-fill", text: '直播', customIcon: false, pagePath: '/pages/tabbar/tabbar4', }, { iconPath: "account", selectedIconPath: "account-fill", text: '我的', count: 23, isDot: false, customIcon: false, pagePath: '/pages/tabbar/tabbar5', } ], current: 0 } }, } </script>
5.tabbar1,2,3,4,5等页面
<template> <view> <view class="">tabbar1</view> <tabbar></tabbar> </view> </template> <script> import {tabbar} from "../../components/tabbar.vue" export default{ components:{ tabbar }, data(){ return {} }, } </script> <style> </style>
这样就可以了
下面是 tabbar组件里list的属性配置,也就是每个tabbar的配置
// 非凸起按钮未激活的图标,可以是uView内置图标名或自定义扩展图标库的图标 // 或者png图标的【绝对路径】,建议尺寸为80px * 80px // 如果是中间凸起的按钮,只能使用图片,且建议为120px * 120px的png图片 // 自定义字体图标库教程:https://www.uviewui.com/guide/customIcon.html list = [ { iconPath: "home", //未激活(未选中)的图标 selectedIconPath: "home-fill", // 激活(选中)的图标 text: '首页', // tabbar显示的提示文字 count: 2, // 红色角标显示的数字,如果需要移除角标,配置此参数为0即可 isDot: true, // 如果配置此值为true,那么角标将会以红点的形式显示 customIcon: false, // 如果使用自定义扩展的图标库字体,需配置此值为true midButton: false, // 如果是凸起按钮项,需配置此值为true pagePath: '', // 点击某一个tabbar时,跳转的路径,此路径必须是pagees.json中tabBar字段中定义的路径,需要以"/"开头 } ]