微信小程序 TabBar 红点提醒完美解决方案

 更新时间:2024年05月15日 10:29:10   作者:饭一口口吃  
TabBar 红点提醒,很多小程序都需要这个功能比如聊天小程序,电商小程序等,这时候我们需要进行自定义 TabBar,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧

TabBar 红点提醒,很多小程序都需要这个功能比如聊天小程序,电商小程序等
这时候我们需要进行自定义 TabBar

配置信息

更改 custom 为 True 变为自定义 Tabbar

{
  "pages": [
    "pages/home/home",
    "pages/index/index",
    "pages/logs/logs"
  ],
  "window": {
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "Weixin",
    "navigationBarBackgroundColor": "#ffffff"
  },
  "componentFramework": "glass-easel",
  "sitemapLocation": "sitemap.json",
  "lazyCodeLoading": "requiredComponents",
  "usingComponents": {
    "van-button": "@vant/weapp/button/index",
    "my-numbers": "./components/numbers/numbers"
  },
  "tabBar": {
    "custom": true,
    "color": "#000000",
    "selectedColor": "#000000",
    "backgroundColor": "#ffffff",
    "list": [{
      "pagePath": "pages/home/home",
      "text": "组件"
    }, {
      "pagePath": "pages/index/index",
      "text": "接口"
    }]
  }
}

配置好后你会发现没有出现 Tabbar 这个是正常的

添加代码文件

在跟目录中创建文件夹和组件结构

创建完成后可以看到这样的界面效果

可以看到这块是一个自定义组建,如果不能出现该效果,可能是因为代码基础调试库的问题,通常在设置自定义 TabBar 提示 TypeError,这时候需要在 详情-》本地设置-》修改基础调试库,不要使用灰度测试版本,我这里实用的是 3.4.2 版本没有问题

实用 Vant 组建 TabBar

引用

"usingComponents": {
  "van-tabbar": "@vant/weapp/tabbar/index",
  "van-tabbar-item": "@vant/weapp/tabbar-item/index"
}

设置 Tabbar 样式

<!--custom-tab-bar/index.wxml-->
<van-tabbar active="{{ active }}" bind:change="onChange">
  <van-tabbar-item info="3">
    <image
      slot="icon"
      src="{{ icon.normal }}"
      mode="aspectFit"
      style="width: 30px; height: 18px;"
      />
      <image
        slot="icon-active"
        src="{{ icon.active }}"
        mode="aspectFit"
        style="width: 30px; height: 18px;"
        />
        自定义
      </van-tabbar-item>
        <van-tabbar-item icon="search">标签</van-tabbar-item>
        <van-tabbar-item icon="setting-o">标签</van-tabbar-item>
      </van-tabbar>

设置 JS

// custom-tab-bar/index.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
  },
  /**
   * 组件的初始数据
   */
  data: {
    active: 0,
    icon: {
      normal: 'https://img.yzcdn.cn/vant/user-inactive.png',
      active: 'https://img.yzcdn.cn/vant/user-active.png',
    },
  },
  /**
   * 组件的方法列表
   */
  methods: {
    onChange(event) {
      this.setData({ active: event.detail });
    }
  }
})

共享数据给 info 属性

创建 store 文件夹-》创建 storejs 文件

// 在这个 js 文件中专门创建 store 对象
import {observable,action} from 'mobx-miniprogram'
export const store = observable({
  numA:1,
  numB:2,
  info:3,
  //计算属性
  get sum(){
    return this.numA+this.numB
  },
  //action方法用来修改 store 中的值
  updateNum1:action(function(step){
    this.numA+=step
  }),
  updateNum2:action(function(step){
    this.numB+=step
  }),
})

设置 customjs 结构

import { storeBindingsBehavior } from 'mobx-miniprogram-bindings';
import { store } from '../store/store';
Component({
  behaviors: [storeBindingsBehavior],
  properties: {},
  storeBindings: {
    store,
    fields: {
      numA: () => store.numA,
      numB: () => store.numB,
      sum: 'sum'
    },
    actions: {
      buttonTap: 'update'
    }
  },
  data: {
    info: 0,
    active: 0,
    icon: {
      normal: 'https://img.yzcdn.cn/vant/user-inactive.png',
      active: 'https://img.yzcdn.cn/vant/user-active.png',
    }
  },
  observers: {
    'sum': function(val) {
      this.setData({
        info: val
      });
    }
  },
  methods: {
    myMethod() {
      this.setData({
        info: this.data.sum
      });
    }
  }
});

设置 wxml 结构

<!--custom-tab-bar/index.wxml-->
<van-tabbar active="{{ active }}" bind:change="onChange">
  <van-tabbar-item info="{{numA}}">
    <image
      slot="icon"
      src="{{ icon.normal }}"
      mode="aspectFit"
      style="width: 30px; height: 18px;"
    />
    <image
      slot="icon-active"
      src="{{ icon.active }}"
      mode="aspectFit"
      style="width: 30px; height: 18px;"
    />
    自定义
  </van-tabbar-item>
  <van-tabbar-item icon="search">标签</van-tabbar-item>
  <van-tabbar-item icon="setting-o">标签</van-tabbar-item>
</van-tabbar>

这时候就可以进行加载

到此这篇关于微信小程序 TabBar 红点提醒解决方案的文章就介绍到这了,更多相关微信小程序 TabBar 红点内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JS实现拖动示例代码

    JS实现拖动示例代码

    JS实现拖动的方法有很多,在本文将为大家介绍下使用getBoundingClientRect()方法是如何实现的,感兴趣的朋友不要错过
    2013-11-11
  • Blazor实现微信的Tab切换功能

    Blazor实现微信的Tab切换功能

    这篇文章主要介绍了Blazor实现微信的Tab切换功能,本文中的UI组件使用的是MASA Blazor,您也可以是其他的UI框架,这个并不影响实际的运行效果,本文案例是兼容PC和Android的,演示效果是android中执行的,在PC中执行效果依然有效,需要的朋友可以参考下
    2023-01-01
  • 微信小程序选择图片控件

    微信小程序选择图片控件

    这篇文章主要为大家详细介绍了微信小程序选择图片控件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-01-01
  • 从JavaScript纯函数解析最深刻的函子 Monad实例

    从JavaScript纯函数解析最深刻的函子 Monad实例

    这篇文章主要为大家介绍了从JavaScript纯函数解析最深刻的函子 Monad实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • 前端图形开发canvas绘制入门教程

    前端图形开发canvas绘制入门教程

    Canvas是HTML5新增元素,用于绘制图形、动画等视觉效果,简单添加Canvas元素和JavaScript即可绘制图形和文本,包括线条、矩形、圆形等,Canvas优势在于高性能和兼容性,适用于复杂交互效果,需要的朋友可以参考下
    2024-11-11
  • 基于JavaScript实现添加到购物车效果附源码下载

    基于JavaScript实现添加到购物车效果附源码下载

    这篇文章主要介绍了基于JavaScript实现添加到购物车效果附源码下载的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-08-08
  • javascript解析json实例详解

    javascript解析json实例详解

    这篇文章主要介绍了javascript解析json的方法,以实例形式详细讲述了javascript的json库用法,需要的朋友可以参考下
    2014-11-11
  • JavaScript实现QQ列表展开收缩扩展功能

    JavaScript实现QQ列表展开收缩扩展功能

    这篇文章主要为大家详细介绍了JavaScript实现QQ列表展开收缩扩展功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • 28个常用JavaScript方法集锦

    28个常用JavaScript方法集锦

    本文给大家汇总介绍了28个常用的javascript方法,十分的全面,都是本人精心整理的,这里推荐给大家,有需要的小伙伴直接带走。
    2015-01-01
  • 小程序实现背景音乐播放和暂停

    小程序实现背景音乐播放和暂停

    这篇文章主要为大家详细介绍了小程序实现背景音乐播放和暂停,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06

最新评论