当前位置: 首页 > news >正文

uni-app 经验分享,从入门到离职(二)—— tabBar 底部导航栏实战篇

文章目录

  • 📋前言
    • ⏬关于专栏
  • 🎯关于小程序 tabbar 的一些知识
  • 🎯创建一个基本的 tabBar
  • 📝最后


在这里插入图片描述

📋前言

这篇文章的内容主题是关于小程序的 tabBar 底部导航栏的入门使用和实战技巧。通过上一篇文章的基础,我们继续对 uni-app 进行更深一步的了解和学习,以上一篇文章创建的项目为例子,我们在这个项目的基础上进行改动和学习小程序的 tabBar 内容。

⏬关于专栏

本篇文章是我的 uni-app 专栏的第二篇文章,这个专栏主要是分享和介绍从零到一学习和使用的 uni-app 的笔记和个人经验。通过个人的学习经验和工作经验来给大家分享关于 uni-app 开发的技巧,以及快速入门的诀窍等等。

专栏主页:uni-app_黛琳ghz的博客-CSDN博客


🎯关于小程序 tabbar 的一些知识

tabBar 是微信小程序中的一种常见导航方式,通常位于页面的底部,用于切换不同的页面或功能模块。

tabBar(标签栏)通常由若干个 tabBarItem(标签项)组成,每个 tabBarItem 表示一个导航选项。用户点击不同的 tabBarItem,小程序会切换到对应的页面或功能。每个 tabBarItem 通常包含一个图标和一个文字标签,如下图所示。
在这里插入图片描述
在开发小程序时,可以通过以下步骤来使用 tabBar:

1️⃣在 app.json 文件中配置 tabBar 字段,指定 tabBar 的整体样式和行为,以及各个 tabBarItem 的相关信息。

"tabBar": {"color": "#999999","selectedColor": "#007AFF","backgroundColor": "#ffffff","borderStyle": "white","list": [{"pagePath": "pages/index/index","iconPath": "assets/tabbar/home.png","selectedIconPath": "assets/tabbar/home_selected.png","text": "首页"},{"pagePath": "pages/category/category","iconPath": "assets/tabbar/category.png","selectedIconPath": "assets/tabbar/category_selected.png","text": "分类"},// 其他 TabBarItem]
}

2️⃣在各个页面的 json 配置文件中设置 navigationBarTitleText 字段,以显示每个页面的标题。

3️⃣创建对应的页面文件,并在页面文件中编写对应的逻辑和界面。每个页面可以通过 wx.navigateTo、wx.redirectTo、wx.switchTab 等函数进行跳转(同理等同于 uni-app 的 uni.navigateTo)。

4️⃣将 tabBar 的图标和文字资源放置到对应的路径下,并在配置文件中引用。


🎯创建一个基本的 tabBar

通过上面的介绍,我们可以大致了解什么是 tabBar 以及如何在 uni-app 项目中创建,接下来我们通过实际操作来加深印象,以及学习一些实战技巧,首先我们从创建一个基本的 tabBar 开始着手。

首先打开上一篇文章创建的项目,然后在该项目的基础上创建一个包含四个选项的导航栏,用到的导航栏图标如下。
在这里插入图片描述
打开项目后,找到文件目录中的 pages.json 这个页面配置文件,首先我们把默认的 index 页面注释掉,然后创建四个新的页面如下图。
在这里插入图片描述

		{"path": "pages/home/home","style": {"navigationBarTitleText": "主页"}},{"path": "pages/activity/activity","style": {"navigationBarTitleText": "活动"}},{"path": "pages/note/note","style": {"navigationBarTitleText": "记事本"}},{"path": "pages/my/my","style": {"navigationBarTitleText": "我的"}}

与此同时,也要在 pages 文件夹下创建好对应页面。
在这里插入图片描述然后在 pages.json 中新建一个 tabbar 对象,然后配置好导航栏的颜色和字体颜色以及字体别选中的颜色,然后创建一个 list 数组来放置导航栏,每个导航栏需要配置最基本的路径,为了更加完善,可以设置图标、被选中的图标以及导航栏的文字,比如说主页、我的等等。
在这里插入图片描述
这种写法是默认的,样式以及布局是小程序内置的,如果对导航栏有其他样式和布局需求的,可以自己定义。接下来我们来看看效果,如下图。
在这里插入图片描述
这样一个简单的导航栏就制作完成了,除此之外还可以设置不同数量的导航栏选项,其中五个的、三个的可以进行特殊的设计,比如说中间的那个按钮设置为凸起的,然后图标大于其他的选项,以此形成强烈的视觉效果,一般中间的这个按钮会是常用的,比如说扫码,扫单号、添加、上传等等功能。我们可以参考这种设计,如下图。
在这里插入图片描述


📝最后

到此就是本篇文章的全部内容了,通过这篇文章我们可以快速了解学习 tabBar 底部导航栏的使用和设计。这篇文章是博主 uni-app 专栏的第二篇文章,后续会不断的更新更多关于 uni-app 的干货、实战经验、学习经验,期待你的关注和留言。
在这里插入图片描述

相关文章:

uni-app 经验分享,从入门到离职(二)—— tabBar 底部导航栏实战篇

文章目录 📋前言⏬关于专栏 🎯关于小程序 tabbar 的一些知识🎯创建一个基本的 tabBar📝最后 📋前言 这篇文章的内容主题是关于小程序的 tabBar 底部导航栏的入门使用和实战技巧。通过上一篇文章的基础,我们…...

Java虚拟机(JVM):内存区域

一、内存区域介绍 Java虚拟机(JVM)内存可以分为以下几个区域: 程序计数器(Program Counter Register):用于记录当前线程执行的字节码指令的地址,属于线程私有的区域。在任意时刻,一…...

11 - git stash 开发中临时加塞了紧急任务怎么处理

查看所有文章链接:(更新中)GIT常用场景- 目录 文章目录 开发中临时加塞了紧急任务怎么处理 开发中临时加塞了紧急任务怎么处理 当你此时工作区已经修改了 Readme 文件,然后突然需要解决其他问题(紧急问题、新任务&…...

高效的WMS系统手持盘点方案

WMS系统手持盘点就是指利用WMS系统支持的手持式电子盘点设备进行库存盘点的方式。 具体来说: - 手持盘点设备是一种小型的电子设备,具有移动条形码扫描功能,可以实时与WMS系统联通。 - WMS系统利用手持设备,可以给仓储人员下发具体的盘点任务,例如需要盘点的货位、商品等信息…...

Oracle分页技术

1、使用两层嵌套 SELECT *FROM (SELECT A.*, ROWNUM RNFROM (SELECT * FROM edw_t100_bal_all) AWHERE ROWNUM < 40)WHERE RN > 21; 2、使用between..and.. SELECT *FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM edw_t100_bal_all) A)WHERE RN between 21 and 40…...

2023-08-15 Untiy进阶 C#知识补充6——C#7主要功能与语法

文章目录 一、字面值改进二、out 内部声明 / 弃元三、ref 返回值四、本地函数五、抛出表达式六、元组七、模式匹配 ​ 注意&#xff1a;在此仅提及 Unity 开发中会用到的一些功能和特性&#xff0c;对于不适合在 Unity 中使用的内容会忽略。 ​ C# 7 对应 Unity 版本&#xff1…...

logstash配置文件

input { kafka { topics > “xxxx” bootstrap_servers > “ip:port” auto_offset_reset > “xxxx” group_id > “xxxx” consumer_threads > 3 codec > “json” } } filter { grok { match > { “message” > ‘%{IP:client_ip} - - [%{HTTPDATE:…...

docker搭建lnmp(nginx+mysql57+php7.4)

docker搭建lnmp(nginxmysql57php7.4) 1. 准备工作 docker安装 $ sudo yum update $ sudo sudo yum install -y yum-utils device-mapper-persistent-data lvm2 $ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo $ sudo…...

专访 BlockPI:共建账户抽象未来的新一代 RPC 基础设施

在传统 RPC 服务板块上&#xff0c;开发者一直饱受故障风险、运行环境混乱等难题的折磨。实现 RPC 服务的去中心化&#xff0c;且保持成本优势和可扩展性&#xff0c;始终是区块链基础设施建设的重要命题之一。从 2018 年观察中心化 RPC 供应商服务现状开始&#xff0c;BlockPI…...

js fetch请求中断的几种方式

1、通过AbortController 这是官方标准手段&#xff0c;真正意义的阻止请求&#xff08;不支持ie&#xff09; 后端接口设置的两秒返回数据 function myFetch() {const controller new AbortController();const signal controller.signal;fetch(http://localhost:3000/aaa/…...

Python自动化实战之使用Selenium进行Web自动化详解

概要 为了完成一项重复的任务&#xff0c;你需要在网站上进行大量的点击和操作&#xff0c;每次都要浪费大量的时间和精力。Python的Selenium库就可以自动化完成这些任务。 在本篇文章中&#xff0c;我们将会介绍如何使用Python的Selenium库进行Web自动化&#xff0c;以及如何…...

“之江数据安全治理论坛”暨《浙江省汽车数据处理活动规定(专家建议稿)》研讨会顺利召开

研讨会主题 8月10日&#xff0c;“之江数据安全治理论坛”暨《浙江省汽车数据处理活动规定&#xff08;专家建议稿&#xff09;》研讨会在浙江大学计算机创新技术研究院举办。 本次研讨会的主题聚焦于“智能网联汽车的数据安全与数据合规”&#xff0c;邀请行业主管部门和数据…...

消息中间件面试题

异步发送(验证码、短信、邮件…) MYSQL和Redis&#xff0c;ES之间的数据同步 分布式事务 削峰填谷 RabbitMQ如何保证消息不丢失&#xff1f; 开启生产者确认机制&#xff0c;确保生产者的消息能到达队列 开启持久化功能&#xff0c;确保消息未消费前在队列中不会丢失 开启消费…...

麻辣烫数据可视化,麻辣烫市场将持续蓬勃发展

麻辣烫&#xff0c;这道源自中国的美食&#xff0c;早已成为人们生活中不可或缺的一部分。它独特的香辣口味&#xff0c;让人忍不住每每流连忘返。与人们的关系&#xff0c;简直如同挚友一般。每当寒冷的冬日或疲惫的时刻&#xff0c;麻辣烫总是悄然走进人们的心房&#xff0c;…...

大数据课程J1——Scala的概述

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解Scala的特点; ⚪ 了解Scala的开发环境搭建; ⚪ 了解Scala的开发工具; 一、概述 1.简介 Scala既是面向对象的语言,也是面向函数的语言。scala可以为你在做大量代码重用和扩展是提…...

第二章:25+ Python 数据操作教程(第十三节NUMPY 教程与练习)

NumPy(“Numerical Python”或“Numeric Python”的缩写)是 Python 中对数组和矩阵进行快速数学计算的最基本的软件包之一。在处理多维数据时它也非常有用。集成C、C++和FORTRAN工具是一件幸事。它还提供了许多傅里叶变换 (FT) 和线性代数函数。 为什么使用 NumPy 而不是列…...

【Java面试】如果一个线程两次调用start(),会出现什么问题?

这个问题出自阿里p6岗位第一面的提问&#xff0c;你会回答吗&#xff1f; 在Java里面&#xff0c;一个线程只能调用一次start()方法&#xff0c;第二次调用会抛出IllegalThreadStateException异常。 一个线程本身是具备一个生命周期的。 在Java里面&#xff0c;线程的生命周…...

购买steam余额有风险吗?以及N种被红锁的情况

购买steam余额有风险吗&#xff1f;以及N种被红锁的情况 无论是打游戏的玩家&#xff0c;还是像我们这类靠倒卖装备赚钱的小商贩&#xff0c;都面临充值美金余额的问题&#xff0c;我们现在主要是找的专业充值渠道做代充。 最近我发现群里有极个别学员通过自己的方法找到了一…...

使用 BERT 进行文本分类 (02/3)

​ 一、说明 在使用BERT&#xff08;1&#xff09;进行文本分类中&#xff0c;我向您展示了一个BERT如何标记文本的示例。在下面的文章中&#xff0c;让我们更深入地研究是否可以使用 BERT 来预测文本是使用 PyTorch 传达积极还是消极的情绪。首先&#xff0c;我们需要准备数据…...

基于Hadoop的表级监管

现状 大数据平台中,采用hadoop的方式存储数据,hdfs本质上是文件系统,而文件系统对数据的监管能力有限,但是数据安全领域问题日渐凸显,现目前,大数据平台一般以分层结构进行授权,但是对于一线开发人员而言,是能够接触到整个大数据平台中的所有表的,那么如何实现这样一…...

OpenWrt SDK实战:如何用SDK高效开发自定义驱动和应用

OpenWrt SDK实战&#xff1a;如何用SDK高效开发自定义驱动和应用 在嵌入式开发领域&#xff0c;OpenWrt因其高度模块化和可定制性成为路由器及物联网设备的首选操作系统。但对于需要频繁修改驱动或开发定制应用的工程师来说&#xff0c;每次完整编译整个系统不仅耗时耗力&#…...

简单认识了解MSE

了解MSE 的应用场景在传统的网页开发中&#xff0c;前端处理视频的方式非常被动&#xff1a;给 video标签指定一个src&#xff0c;剩下的下载、缓冲、解码工作完全由浏览器底层“黑盒”接管&#xff0c;开发者几乎无法干预。MSE&#xff08;Media Source Extensions&#xff0c…...

开源密码测试工具ArchivePasswordTestTool:从加密困境到文件解锁的完整方案

开源密码测试工具ArchivePasswordTestTool&#xff1a;从加密困境到文件解锁的完整方案 【免费下载链接】ArchivePasswordTestTool 利用7zip测试压缩包的功能 对加密压缩包进行自动化测试密码 项目地址: https://gitcode.com/gh_mirrors/ar/ArchivePasswordTestTool 问题…...

嵌入式开发问题解决:从复现到根治的实战指南

1. 嵌入式开发问题解决之道&#xff1a;从复现到根治 搞嵌入式开发这些年&#xff0c;踩过的坑比写过的代码还多。每次遇到系统崩溃、数据异常或者外设抽风&#xff0c;都像在玩侦探游戏——证据支离破碎&#xff0c;真凶隐藏极深。今天就把我这些年总结的"破案"方法…...

别再只调PID了!聊聊机器人控制里‘运动控制’和‘动态控制’到底有啥区别(附结构图解析)

机器人控制进阶&#xff1a;运动控制与动态控制的本质差异与工程选择 刚接触机器人控制的工程师们&#xff0c;常常会被各种控制理论绕得晕头转向。记得我第一次调试机械臂时&#xff0c;导师只丢下一句"先调PID参数试试"&#xff0c;结果整整三天都在和震荡、超调搏…...

Ubuntu 24.04 时间同步踩坑记:从 hwclock 到 timedatectl 的演进与实战

Ubuntu 24.04 时间同步踩坑记&#xff1a;从 hwclock 到 timedatectl 的演进与实战 记得第一次在 Ubuntu 24.04 上看到系统时间与 Windows 11 相差整整 8 小时时&#xff0c;我下意识地敲下了熟悉的 hwclock 命令——这个陪伴我多年的老伙计。然而终端冰冷的报错提示让我意识到…...

PredRNN++:从单元到系统,逐层拆解与实战解析

1. PredRNN核心单元拆解 PredRNN作为视频预测领域的里程碑模型&#xff0c;其核心创新在于Causal LSTM和GHU两大单元的设计。我们先从代码层面看看它们如何运作。 1.1 Causal LSTM的三明治结构 打开CausalLSTMCell.py文件&#xff0c;你会发现这个单元像三明治一样分为三层&…...

ZYNQ双核通信必看:共享内存的Cache一致性处理实战

ZYNQ双核通信中的Cache一致性实战指南 在嵌入式系统开发中&#xff0c;多核处理器间的数据共享一直是开发者面临的挑战之一。Xilinx ZYNQ系列SoC凭借其ARM双核Cortex-A9架构与可编程逻辑的完美结合&#xff0c;为高性能嵌入式应用提供了强大支持。然而&#xff0c;当两个核心需…...

官方定调:Token(词元)是智能时代“硬通货”,不懂它用AI要被淘汰!

文章介绍了Token&#xff08;词元&#xff09;的官方定义及其在智能时代的重要性。Token是AI处理和理解文本的基本单位&#xff0c;类似于AI的“母语”。文章解释了Token的来源和运作机制&#xff0c;特别是中文和英文Token计数的差异&#xff0c;以及如何计算文本的Token数量。…...

FFCreator 10个实用技巧:轻松掌握视频制作的核心功能

FFCreator 10个实用技巧&#xff1a;轻松掌握视频制作的核心功能 【免费下载链接】FFCreator 一个基于node.js的高速视频制作库 A fast video processing library based on node.js 项目地址: https://gitcode.com/gh_mirrors/ff/FFCreator FFCreator是一个基于Node.js的…...