微信小程序:自定义 tabBar 效果

自定义 tabBar 效果

自定义 tabBar 在 app.json 中的 tabBar 里设置 customtrue 就可以关闭原生 tabBar。

  1. 开启自定义 tabBar

    原生的 tabBar 内容不删除,兼容低版本。

    {// 注册vant组件"usingComponents": {"van-tabbar": "@vant/weapp/tabbar/index","van-tabbar-item": "@vant/weapp/tabbar-item/index"},"tabBar": {// 开启自定义tabBar"custom": true,"list": [...]}
    }
    
  2. tabBar 选中下标写在 Store.store.js 中。

    解决切换 tabBar 时,下标不正确的问题。

    /* Store.store.js */
    import { observable, action } from 'mobx-miniprogram'export const store = observable({// tabBar选中的下标activeIndex: 0,// 修改tabBar选中的下标updateActiveIndex: action( function (index) {this.activeIndex = index})
    })
    
  3. 在根目录下创建 custom-tab-bar 组件,用来设置自定义 tabBar。

    <!-- custom-tab-bar/index.wxml -->
    <van-tabbar active="{{ activeIndex }}" bind:change="onChange"><van-tabbar-item wx:for="{{list}}" wx:key="index" info="{{item.info && item.info}}"><image slot="icon" src="{{ item.iconPath }}" mode="aspectFit" style="width: 25px; height: 25px;" /><image slot="icon-active" src="{{ item.selectedIconPath }}" mode="aspectFit" style="width: 25px; height: 25px;" />{{item.text}}</van-tabbar-item>
    </van-tabbar>
    
    // custom-tab-bar/index.js
    import { storeBindingsBehavior } from 'mobx-miniprogram-bindings'
    import { store } from '../Store/store'Component({// 1.混入Store定义好的属性和方法behaviors: [storeBindingsBehavior],storeBindings: {store,fields: ['activeIndex'],actions: ['updateActiveIndex']},// 组件的属性列表properties: {},data: {// tabBar列表list: [{pagePath: "/pages/index/index",text: "首页",iconPath: "/images/home.png",selectedIconPath: "/images/home-active.png"},{"pagePath": "/pages/message/message","text": "信息","iconPath": "/images/message.png","selectedIconPath": "/images/message-active.png"},{"pagePath": "/pages/contact/contact","text": "联系我们",info: 3,"iconPath": "/images/contact.png","selectedIconPath": "/images/contact-active.png"}]},methods: {// 2.切换tabBaronChange(event) {// 2.1更新下标this.updateActiveIndex(event.detail)// 2.2跳转路由wx.switchTab({url: this.data.list[event.detail].pagePath,})},}
    })
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/47303.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算机网络】0 课程主要内容(自顶向下方法,中科大郑烇、杨坚)(待)

1 教学目标 掌握计算机网络 基本概念 工作原理 常用技术 为将来学习、应用和研究计算机网络打下坚实基础 2 课程主要内容 1 计算机网络和互联网2 应用层3 传输层4 网络层&#xff1a;数据平面5 网络层&#xff1a;控制平面6 数据链路层和局域网7 网络安全8 无线和移动网络9 多…

构建gitlab远端服务器(check->build->test->deploy)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言构建gitlab远端服务器一、步骤一:搭建gitlab的运行服务器【运维】1. 第一步:硬件服务器准备工作(1)选择合适的硬件和操作系统linux(2)安装必…

Learning vtkjs之WarpScalar

过滤器 WarpScalar 介绍 先看一个官方的一句话介绍&#xff1a; vtkWarpScalar - deform geometry with scalar data vtkWarpScalar - 使用标量数据变形几何体 详细介绍 vtkWarpScalar is a filter that modifies point coordinates by moving points along point normals by…

Linux服务器安装nginx,nginx配置详解。

前置 一台linux服务器。nginx安装包&#xff08;地址&#xff1a;NginxDownload&#xff09;ssh连接工具&#xff1a;putty,Tssh等推荐使用tssh或者服务器云平台自带的 部署 通过ssh工具连接到服务器&#xff0c;su进入root账户&#xff0c;先更新三方库。 更新三方库 Cen…

spss数据分析是什么 怎么下载spss

什么是SPSS SPSS是社会统计科学软件包的简称&#xff0c; 其官方全称为IBM SPSS Statistics。SPSS软件包最初由SPSS Inc.于1968年推出&#xff0c;于2009年被IBM收购&#xff0c;主要运用于各领域数据的管理和统计分析。作为世界社会科学数据分析的标准&#xff0c;SPSS操作操作…

【Rust光年纪】超越ORM:探索Rust语言多款数据库客户端库的核心功能和使用场景

数据库操作新选择&#xff1a;从异步操作到连接管理&#xff0c;掌握Rust语言数据库客户端库的全貌 前言 在现代软件开发中&#xff0c;与数据库进行交互是一个常见的任务。Rust语言作为一种高性能、内存安全的编程语言&#xff0c;拥有丰富的生态系统来支持各种数据库操作。…

C++合作开发项目:美术馆1.0

快乐星空MakerZINCFFO 合作入口&#xff1a;CM工作室 效果图&#xff1a; 代码&#xff1a; &#xff08;还有几个音乐&#xff01;&#xff09; main.cpp #include <bits/stdc.h> #include <windows.h> #include <conio.h> #include <time.h> #in…

Codeforces 1733D 891C Envy+1681F Unique Occurrences(可撤销并查集)

891C Envy 题意 给定一张图以及q个查询&#xff0c;输出每个查询中的边是否全部会出现在某个最小生成树里。 思路 首先如果只考虑一次查询&#xff0c;这一次查询只有一条边&#xff0c;那么只要用kruskal算法处理完所有边权小于这条边的边&#xff0c;此时如果这条边的两点已…

Math Reference Notes: 数学思想和方法

文章目录 1. 数学思想1.1 数形结合思想1.2 转化思想1.3 分类讨论思想1.4 整体思想 2. 数学方法2.1 配方法2.2 因式分解法2.3 待定系数法2.4 换元法2.5 构造法2.6 等积法2.7 反证法2.8 判别式法 1. 数学思想 1.1 数形结合思想 定义&#xff1a;将数与形&#xff08;代数与几何…

linux 安装使用php环境, 以及常用操作介绍

php的源码编译安装,属实是太麻烦太痛苦了&#xff1b;于是我们选择放弃这种方式&#xff0c;采用linux自带的包管理器来安装。 本文使用的linux发行版本是centOs, 安装php环境的指令如下 yum install php php-fpm 如果你的YUM仓库中没有你需要的版本&#xff0c;你可能需要添…

《数据结构》--顺序表

C语言语法基础到数据结构与算法&#xff0c;前面已经掌握并具备了扎实的C语言基础&#xff0c;为什么要学习数据结构课程&#xff1f;--我们学完本章就可以实践一个&#xff1a;通讯录项目 简单了解过后&#xff0c;通讯录具备增加、删除、修改、查找联系人等操作。要想实现通…

Python学习笔记—100页Opencv详细讲解教程

目录 1 创建和显示窗口... - 4 - 2 加载显示图片... - 6 - 3 保存图片... - 7 - 4 视频采集... - 8 - 5视频录制... - 11 - 6 控制鼠标... - 12 - 7 TrackBar 控件... - 14 - 8.RGB和BGR颜色空间... - 16 - 9.HSV和HSL和YUV.. - 17 - 10 颜色空间的转化... - 18 - …

数据结构——栈的实现(java实现)与相应的oj题

文章目录 一 栈栈的概念:栈的实现&#xff1a;栈的数组实现默认构造方法压栈获取栈元素的个数出栈获取栈顶元素判断当前栈是否为空 java提供的Stack类Stack实现的接口&#xff1a; LinkedList也可以当Stack使用虚拟机栈&#xff0c;栈帧&#xff0c;栈的三个概念 二 栈的一些算…

JetBrains IDE 使用git进行多人合作开发教程

以下DEMO可以用于多人共同开发维护一个项目时&#xff0c;使用Git远程仓库的实践方案 分支管理 dev&#xff1a;开发分支test&#xff1a;测试分支prod&#xff1a;生成分支 个人开发也最起码有一个masterdev&#xff0c;作为主分支和当前开发分支。master永远是稳定版本&am…

花几千上万学习Java,真没必要!(十九)

1、StringBuilder&#xff1a; 测试代码1&#xff1a; package stringbuilder.com; import java.util.ArrayList; import java.util.List; public class StringBuilderExample { public static void main(String[] args) { // 初始化StringBuilder StringBuilder sb n…

腾讯会议产品策划的成长之路:从万字文档到功能落地的实战经验

腾讯会议产品策划的成长之路&#xff1a;从万字文档到功能落地的实战经验 在腾讯会议的产品团队中&#xff0c;有这样一位产品策划&#xff0c;他以其出色的逻辑思维、全局观念以及扎实的执行力&#xff0c;在团队中发挥着举足轻重的作用。他就是林陪同&#xff0c;一个自称“会…

css font 优化

文章目录 使用 font-display 控制字体加载预加载关键字体选择合适的字体文件类型按需创建字体文件HTTP 缓存优化 使用 font-display 控制字体加载 避免字体加载导致的空白 block&#xff1a;浏览器在短暂的阻塞期内不显示任何文本&#xff0c;直到字体加载完成。这可能导致页…

JAVA进阶学习12

文章目录 一、File类1.1 File对象的构造1.2 File对象的常见方法判断功能的方法获取功能的方法绝对路径和相对路径创建删除功能的方法 1.3 File的常用遍历方法1.4 File获取并遍历的其他方法1.5 用法举例二、IO流2.1 IO的分类2.2 字节流的方法概述2.2.1 FileOutputStream2.2.2 Fi…

如何配置Memcached以减少对数据库的直接访问

如何配置Memcached以减少对数据库的直接访问 1. 引言 在现代应用程序中&#xff0c;数据库通常是性能瓶颈的主要来源之一。通过使用Memcached&#xff0c;开发者可以显著减少数据库的负载&#xff0c;提高应用程序的响应速度。本文将详细介绍如何配置Memcached&#xff0c;以…

UE4-字体导入

一.字体导入 方法一&#xff1a; 然后通过导入将自己想要的字体导入到项目中&#xff0c;也可以直接将我们放在桌面的字体直接拖入到我们的内容浏览器中。 但是要注意想要发售游戏的话不可以这样导入微软的字体&#xff0c;因为Windows自带基本都有版权&#xff0c;所以最…