uniApp tabbar 可自定义,也可原生

Posted diuren1205

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uniApp tabbar 可自定义,也可原生相关的知识,希望对你有一定的参考价值。

最近在学习uniApp,关于tabbar的学习,记录一下。

  1. uniApp原生的 tabbar 设置
    pages.json 文件中,注意 static 文件下图片路径

    "tabBar": {
         "color": "#7A7E83",
         "selectedColor": "#3cc51f",
         "borderStyle": "black",
         "backgroundColor": "#ffffff",
         "list": [{
             "pagePath": "pages/index/index",
             "iconPath": "static/images/tabbar2/basics.png",
             "selectedIconPath": "static/images/tabbar2/basics_cur.png",
             "text": "首页"
         },{
             "pagePath": "pages/fangke/fangke",
             "iconPath": "static/images/tabbar2/plugin.png",
             "selectedIconPath": "static/images/tabbar2/plugin_cur.png",
             "text": "访客"
         }, {
             "pagePath": "pages/my/my",
             "iconPath": "static/images/tabbar2/about.png",
             "selectedIconPath": "static/images/tabbar2/about_cur.png",
             "text": "我的"
         }]
     }
  2. 自定义的tabbar,用的colorUI的tabbar组件
    下载源码解压,复制根目录的 /colorui 文件夹到你的根目录
    传送门 colorUI-uniAPP
    传送门 colorUI
    原理是一个主页面引入多个页面,在主页面进行切换显示。这样可以解决切换时闪烁的问题。
    main.js全局引入components

import basics from \'./pages/basics/home.vue\'
Vue.component(\'basics\',basics)

import components from \'./pages/component/home.vue\'
Vue.component(\'components\',components)

import plugin from \'./pages/plugin/home.vue\'
Vue.component(\'plugin\',plugin)

在主页面index.vue文件中,

<basics v-if="PageCur==\'basics\'"></basics>
<components v-if="PageCur==\'component\'"></components>
<plugin v-if="PageCur==\'plugin\'"></plugin>
<view class="cu-bar tabbar bg-white shadow foot">
            <view class="action" @click="NavChange" data-cur="basics">
                <view class=\'cuIcon-cu-image\'>
                    <image :src="\'/static/tabbar/basics\' + [PageCur==\'basics\'?\'_cur\':\'\'] + \'.png\'"></image>
                </view>
                <view :class="PageCur==\'basics\'?\'text-green\':\'text-gray\'">元素</view>
            </view>
            <view class="action" @click="NavChange" data-cur="component">
                <view class=\'cuIcon-cu-image\'>
                    <image :src="\'/static/tabbar/component\' + [PageCur == \'component\'?\'_cur\':\'\'] + \'.png\'"></image>
                </view>
                <view :class="PageCur==\'component\'?\'text-green\':\'text-gray\'">组件</view>
            </view>
            <view class="action" @click="NavChange" data-cur="plugin">
                <view class=\'cuIcon-cu-image\'>
                    <image :src="\'/static/tabbar/plugin\' + [PageCur == \'plugin\'?\'_cur\':\'\'] + \'.png\'"></image>
                </view>
                <view :class="PageCur==\'plugin\'?\'text-green\':\'text-gray\'">扩展</view>
            </view>
</view>

APP.vue记得引入colorUI的css

<style>
  @import "colorui/main.css";
  @import "colorui/icon.css";
</style>

以上是关于uniApp tabbar 可自定义,也可原生的主要内容,如果未能解决你的问题,请参考以下文章

uniapp 声音提示震动提示语音播报插件 Ba-Beep

七、uni-app 原生插件开发03 - 制作自定义基座

uniapp 之 如何编写透明页面(类似与nvue页面,可以盖住原生组件如底部tabbar)

uniapp 原生Toast弹窗提示(可穿透所有界面) Ba-Toast

uniapp 原生Toast弹窗提示(可穿透所有界面) Ba-Toast

uni-app自定义tabBar