Uniapp小程序开发-底部tabbar的开发思路

文章目录

  • 前言
  • 一、uniapp 实现 tabbar
  • 二、图标使用网络图片
    • 后端返回tabbar信息
    • uniapp方式中的setTabBarItem
  • 总结


前言

记录uniapp 开发小程序的底部tabbar ,这里讨论的不是自定义tabbar的情况。而是使用wx.setTabBarItem(Object object) 这个api的情况。关于custom 小程序底部tabbar的可以跳过。


一、uniapp 实现 tabbar

实现 tabbar 的简单步骤如下:

  1. 在 uniapp 项目的 pages.json 文件中,配置 tabBar 字段,来定义 tabbar 的样式和内容,例如:
{"tabBar": {"color": "#666","selectedColor": "#f00","backgroundColor": "#fff","borderStyle": "black","list": [{"pagePath": "pages/index/index","text": "首页","iconPath": "static/tabbar/home.png","selectedIconPath": "static/tabbar/home_active.png"},{"pagePath": "pages/cart/cart","text": "购物车","iconPath": "static/tabbar/cart.png","selectedIconPath": "static/tabbar/cart_active.png"},{"pagePath": "pages/user/user","text": "个人中心","iconPath": "static/tabbar/user.png","selectedIconPath": "static/tabbar/user_active.png"}]}
}
  1. pages 目录下创建对应的三个页面:indexcartuser

  2. pages/index 目录下创建 index.vue 文件,编写首页的内容。

  3. pages/cart 目录下创建 cart.vue 文件,编写购物车页面的内容。

  4. pages/user 目录下创建 user.vue 文件,编写个人中心页面的内容。

  5. App.vue 文件中,将 tabbar 的内容放在 <tabbar> 标签内,例如:

<template><view><router-view></router-view><tabbar></tabbar></view>
</template>
  1. 在项目的根目录下,创建 components 文件夹,再在该文件夹下创建 tabbar.vue 文件,编写 tabbar 的样式和逻辑,例如:
<template><view class="tabbar"><view v-for="(item, index) in tabBar.list" :key="index" class="tabbar-item" @click="switchTab(index)"><image :src="item.selected ? item.selectedIconPath : item.iconPath" class="tabbar-icon"></image><view class="tabbar-text">{{ item.text }}</view></view></view>
</template><script>
export default {data() {return {tabBar: getApp().globalData.tabBar  // 从全局数据中获取 tabBar 的配置}},methods: {switchTab(index) {uni.switchTab({url: '/' + this.tabBar.list[index].pagePath})}}
}
</script><style scoped>
.tabbar {display: flex;justify-content: space-between;align-items: center;height: 50px;background-color: #fff;border-top: 1px solid #000;
}.tabbar-item {flex: 1;display: flex;flex-direction: column;align-items: center;justify-content: center;font-size: 12px;color: #666;
}.tabbar-icon {width: 24px;height: 24px;
}.tabbar-text {margin-top: 2px;
}
</style>
  1. main.js 文件中全局配置 tabBar 的配置,例如:
App({globalData: {tabBar: require('./pages.json').tabBar}
})

这样,就完成了 tabbar 的简单实现过程。tabbar 的样式和逻辑可以根据项目的需求进行自定义修改,tabbar第一个path与pages的path 保持一致。也就是首页路径。

二、图标使用网络图片

那么如果是icon是后端返回网络图片,url的形式。

{"iconPath": "https://files/static/tabbar/home.png","selectedIconPath": "https://files/static/tabbar/home_active.png"
}

注意这个功能要小程序版本的基础库版本在 2.7.0以上。

在这里插入图片描述

后端返回tabbar信息

后端返回tabbar信息,已达到可以在后端管理tabbar的图标。即是iconPath,selectedIconPath 这些是支持重置。官方提供了这个apiwx.setTabBarItem(Object object)

在这里插入图片描述

uniapp方式中的setTabBarItem

如图在onLauch中加入相关逻辑。获取tabbar信息后,uni.setTabBarItem。
在这里插入图片描述


总结

今天的内容就在这里了,本文讨论如何使用uniapp实现基本tabbar功能,接着给出动态设置icon的思路。依赖的api是uni.setTabBarItem。

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

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

相关文章

【Linux进程】进程状态---进程僵尸与孤儿

&#x1f4d9; 作者简介 &#xff1a;RO-BERRY &#x1f4d7; 学习方向&#xff1a;致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f4d2; 日后方向 : 偏向于CPP开发以及大数据方向&#xff0c;欢迎各位关注&#xff0c;谢谢各位的支持 目录 1.进程排队2.进程状态…

【Ubuntu】通过网线连接两台电脑以实现局域网连接的方法

有时我们需要将多台计算机连接在一起&#xff0c;以便实现数据共享、资源访问等功能。本文将介绍如何通过网线连接两台运行Ubuntu操作系统的电脑&#xff0c;以便它们能够直接通信&#xff0c;从而实现局域网连接。 1. 准备工作 在开始之前&#xff0c;请准备好&#xff1a; …

[云原生] 二进制安装K8S(上)搭建单机matser、etcd集群和node节点

一、单机matser预部署设计 目前Kubernetes最新版本是v1.25&#xff0c;但大部分公司一般不会使用最新版本。 目前公司使用比较多的&#xff1a;老版本是v1.15&#xff0c;因为v1.16改变了很多API接口版本&#xff0c;国内目前使用比较多的是v1.18、v1.20。 组件部署&#xff…

中序遍历+二分,LeetCode 2476. 二叉搜索树最近节点查询

一、题目 1、题目描述 给你一个 二叉搜索树 的根节点 root &#xff0c;和一个由正整数组成、长度为 n 的数组 queries 。 请你找出一个长度为 n 的 二维 答案数组 answer &#xff0c;其中 answer[i] [mini, maxi] &#xff1a; mini 是树中小于等于 queries[i] 的 最大值 。…

WordPress前端如何使用跟后台一样的Dashicons图标字体?

很多站长都喜欢在站点菜单或其他地方添加一些图标字体&#xff0c;常用的就是添加Font Awesome 图标和阿里巴巴矢量库图标iconfont。其实我们使用的 WordPress 本身就有一套管理员使用的官方图标字体 Dashicons&#xff0c;登录我们站点后台就能看到这些图标字体。那么有没有可…

力扣思路题:丑数

此题的思路非常奇妙&#xff0c;可以借鉴一下 bool isUgly(int num){if(num0)return false;while(num%20)num/2;while(num%30)num/3;while(num%50)num/5;return num1; }

vim 寄存器

文章目录 寄存器 查看调取寄存器值寄存器类型 寄存器 查看 查看所有寄存器值&#xff1a;:reg 查看指定寄存器值&#xff1a;:reg {register_name} 调取寄存器值 NORMAL Mode(一般模式)&#xff1a;"{register_name} COMMAND MODE(命令模式)&#xff1a;"寄存器…

C语言让if语句与switch 话句的优缺点是什么?

一、问题 if语句和 switch 语句都是⽤来构成选择结构的。switch 语句⽤于构成⼀个多分⽀选择结构&#xff0c;if语句⽤于构成只有两个分⽀的选择结构&#xff0c;通过if语句的嵌套&#xff0c;也可以构成多分⽀选择结构。那么&#xff0c;什么时候使⽤if语句的嵌套&#xff0c;…

面试题整理2

文章目录 前言1.Redis数据结构及其使用场景2.Redis缓存穿透、击穿、雪崩如何发生及解决方案3.SpringBoot启动类注解的底层实现原理4.docker常用命令5.Linux常用命令6.Java线程实现的几种方式7.Mybatis框架中#{}和${}的区别8.MySQL常见索引和区别9.乐观锁怎么实现10.SpringCloud…

合并报表系统

系统是由一系列不同机能的部件&#xff0c;经过有机组合以后完成特定功能&#xff0c;具有独特特性的产品 对于合并报表系统&#xff0c;其功能就是合并报表&#xff0c;那拆分下&#xff0c;合并报表需要什么组件呢 1.数据集成&#xff0c;合并是把一系列分子公司数据集成到…

React18源码: Fiber树中的优先级与帧栈模型

优先级{#lanes} 在全局变量中有不少变量都以Lanes命名 如workInProgressRootRenderLanes, subtreeRenderLanes其作用见上文注释它们都与优先级相关 React中有3套优先级体系&#xff0c;并了解了它们之间的关联关系现在来看下fiber树构造过程中&#xff0c;车道模型Lane的具体应…

18个惊艳的可视化大屏(第六辑):地图焦点

本期带来的都是以地图作为视觉焦点的可视化大屏页面。

动态规划课堂1-----斐波那契数列模型

目录 动态规划的概念&#xff1a; 动态规划的解法流程&#xff1a; 题目: 第 N 个泰波那契数 解法&#xff08;动态规划&#xff09; 代码&#xff1a; 优化&#xff1a; 题目&#xff1a;最小花费爬楼梯 解法&#xff08;动态规划&#xff09; 解法1&#xff1a; 解…

独立站建站全攻略:从0到1打造专属在线商业平台

独立站建站全攻略&#xff1a;从0到1打造专属在线商业平台 随着互联网的普及和发展&#xff0c;越来越多的企业和个人开始认识到拥有一个独立站的重要性。独立站不仅可以提升品牌形象&#xff0c;还能为企业带来更多的流量和潜在客户。本文将为大家详细介绍独立站建站的全过程…

如何实现不同 Vue 项目的 npm 和 Node.js 环境进行隔离

方法一&#xff1a;使用 nvm&#xff08;Node Version Manager&#xff09; nvm 是一个用于管理多个 Node.js 版本的工具。通过 nvm&#xff0c;你可以为每个 Vue 项目安装和使用不同版本的 Node.js 和 npm。首先&#xff0c;安装 nvm&#xff1a;对于 macOS 和 Linux&#xf…

【深度学习笔记】卷积神经网络——汇聚层(池化层)

汇聚层&#xff08;池化层&#xff09; 通常当我们处理图像时&#xff0c;我们希望逐渐降低隐藏表示的空间分辨率、聚集信息&#xff0c;这样随着我们在神经网络中层叠的上升&#xff0c;每个神经元对其敏感的感受野&#xff08;输入&#xff09;就越大。 而我们的机器学习任…

VsCode的leetcode插件无法登录

前提 想使用VsCode的leetcode插件进行刷题&#xff0c;然后按照网上的教程进行安装下载&#xff0c;但是到了登录这一步&#xff0c;死活也登录不了&#xff0c;然后查看log一直报的错误是invalid password。 解决方法 首先确定在插件中设置的站点是Leetcode中国&#xff0c…

图像处理新框架 | 语义与复原指令双引擎,谷歌研究院提出文本驱动图像处理框架TIP

本文首发: AIWalker 欢迎关注AIWalker&#xff0c;底层视觉与基础AI技术 https://arxiv.org/abs/2312.14091 https://github.com/Picsart-AI-Research/HD-Painter 基于文本到图像扩散模型的空前成功&#xff0c;文本引导图像修复的最新进展已经可以生成非常逼真和视觉上合理的结…

C++面试:linux系统性能监控命令的使用

目录 1. top 2. vmstat 3. iostat 4. mpstat 5. netstat 6. sar 7. htop 8. dstat 9. free 10. lsof 11. pidstat 12. nmon 13. iftop 14. glances 面试准备小贴士 在Linux系统管理和故障排查中&#xff0c;使用性能监控工具是非常重要的。这些工具可以帮助你理…

centos7部署单机项目和自启动

centos7部署单机项目和服务器自启动 1.安装jdk和tomact1.1上传jdk、tomcat安装包1.2解压两个工具包1.3.配置并且测试jdk安装1.4.启动tomcat1.5.防火墙设置1.6配置tomcat自启动 2.安装mysql2.1卸载mariadb&#xff0c;否则安装MySql会出现冲突(先查看后删除再查看)2.2在线下载My…