微信小程序子页面自定义tabbar组件

2023-11-04

一.先言:

有时候微信小程序会遇到代码合并,就比如把B小程序代码迁移到A小程序,要使得B作为A小程序的一个子页面子功能。因为本身小程序都有tabbar,原来B也有,这时候就要给B子功能自定义一个tabbar底部导航栏。(注意,这个不是微信小程序自定义tabBar,不需要app.json中设置一个属性custom,因为A的tabbar是不修改不动的,只是在子功能模块多加一个tabbar,相当于只是自定义一个组件。)
在这里插入图片描述

二.实现:

1.实现很简单,第一步是创建一个组件文件夹,位置随意,到时引用路径写对就好,这里我定义有‘’首页‘’和‘’我的‘’两个tab:

wxml:

<view class="fix-btm">
	<view class="fix-btm-list" catchtap="switchTab"   data-url="点击需要跳转的tab页面路径">
		<view class="fix-btn-img">
			<image class="fix-btm-img" mode="widthFix" src="{{selected==0 ? '点击时图片路径' : '未点击时图片路径'}}" />
			<text  class="{{selected==0 ? 'active' : ''}}">首页</text>
		</view>
	</view>
	<view class="fix-btm-list" catchtap="switchTab"  data-url="点击需要跳转的tab页面路径">
		<view class="fix-btn-img">
			<image class="fix-btm-img" mode="aspectFit" src="{{selected==1 ? '点击时图片路径' : '未点击时图片路径'}}" />
			<text class="{{selected==1 ? 'active' : ''}}">我的</text>
		</view>
	</view>
</view>

wxss:


/* 底部栏 */
.fix-btm {
  display: flex;
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 104.166rpx;
  background-color: #fff;
  box-shadow: 0 -2rpx 20rpx rgba(0, 0, 0, .1);
}
.fix-btm-list{
  flex:1;
  overflow: hidden;
}
.fix-btn-img{
  width: 100%;
  height: 100%;
  text-align: center;
  position: relative;
}
.fix-btm-img{
  width: 33.333rpx;
  height: 33.333rpx;
  display: block;
  padding-top: 19.444rpx;
  margin: 0 auto;
}
.fix-btm-list .fix-btn-img .red-dot,
.fix-btm-list .fix-btn-img .red-msg{
  width: 16.666rpx;
  height: 16.666rpx;
  z-index: 1000;
  position: absolute;
  top: 14rpx;
  transform: translateX(30rpx);
  background-color: #FF2929;
  border-radius: 20rpx;
}
.fix-btm-list .fix-btn-img .red-dot{
  right: 50%;
}
.fix-btm-list .fix-btn-img .red-msg{
  width: auto;
  height: auto;
  color: #fff;
  font-size: 16.666rpx;
  padding: 2rpx 8rpx;
  left: 50%;
  transform: translateX(50%);
}
.fix-btm-list text{
  font-size: 25rpx;
  color: #8A8A8A;
}
.fix-btm-list text.active{
  color: #0072FF;
}

js:

Component({
  /**
   * 组件的属性列表
   */
  properties: {
    selected: {
        type:Number,
        value:0
    },
  },

  /**
   * 组件的初始数据
   */
  data: {
    
  },

  /**
   * 组件的方法列表
   */
  methods: {
    switchTab(e) {
        let url  = e.currentTarget.dataset.url
      //这个方法如果调用,会导致tab bar闪动一下,这个是个bug
    /*   this.setData({
        selected: index
      }) */
      //  wx.switchTab({ url })
      wx.reLaunch({
        url
      })
    }

  }
})

json:

{
  "component": true,
  "usingComponents": {}
}
  1. 引用组件,在首页和我的页面引用tabbar组件:

‘首页’的json文件引入:

{
  "usingComponents": {
    "tabBar":"组件文件路径"
  },
}

‘首页’的wxml文件引入,在最底部写入:

<tabBar selected="0"></tabBar>

‘我的’的json文件引入:

{
  "usingComponents": {
    "tabBar":"组件文件路径"
  },
}

‘我的’的wxml文件引入,在最底部写入:

<tabBar selected="1"></tabBar>

三.结语:

886,接下来一路高产

我的哔哩哔哩空间
Gitee仓库地址:全部特效源码
其它文章:
~关注我看更多简单创意特效:
文字烟雾效果 html+css+js
环绕倒影加载特效 html+css
气泡浮动背景特效 html+css
简约时钟特效 html+css+js
赛博朋克风格按钮 html+css
仿网易云官网轮播图 html+css+js
水波加载动画 html+css
导航栏滚动渐变效果 html+css+js
书本翻页 html+css
3D立体相册 html+css
霓虹灯绘画板效果 html+css+js
记一些css属性总结(一)
Sass总结笔记
…等等
进我主页看更多~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信小程序子页面自定义tabbar组件 的相关文章

随机推荐

  • Matlab机器人工具箱机械手建模详解(同知乎)

    关于使用Matlab机器人工具箱建立机械手模型的一些经验分享给大家 使用软件版本为matlab2015a和rvctools9 8 matlab机械人工具箱下载地址 http petercorke com wordpress toolboxe
  • vue中的ref之间的通信

    vue文档对ref的官方解释是 ref 被用来给元素或子组件注册引用信息 引用信息将会注册在父组件的 refs 对象上 如果在普通的 DOM 元素上使用 引用指向的就是 DOM 元素 如果用在子组件上 引用就指向组件实例 p hello p
  • 从用户登录谈谈测试用例设计

    等价类划分和边界值分析方法是最常用 最典型并且是最重要的黑盒测试方法 一 功能测试用例 针对 用户登录 功能测试 基于等价类划分和边界值分析方法 能够设计的功能测试用例有 1 输入已注册的用户名和正确的密码 验证是否登录成功 2 输入已注册
  • 干货满满!MES生产制造管理全流程分析

    阅读本文您将了解 1 什么是MES生产管理流程 2 MES生产管理流程具体步骤 3 实施MES生产管理流程优势 4 MES生产管理流程中可能会遇见的问题 一 什么是MES生产管理流程 MES生产管理系统 又称制造执行系统 是一种集成了计划
  • C语言--库函数qsort排序

    文章目录 一 C语言 库函数qsort排序 1 1 冒泡排序 1 2 qsort排序 二 模拟实现qsort函数 一 C语言 库函数qsort排序 假设我们要对一个数组元素进行排序 如果是一个整型数组 我们首先可以想到的是冒泡排序 但其实C
  • 腾讯潘安群:腾讯云金融级数据库TDSQL分析

    SDCC 2015将于2015年11月19 21日在北京 朗丽姿西山花园酒店召开 在大会召开之际 笔者采访到了腾讯高级软件工程师潘安群 请他分享TDSQL在腾讯云金融领域的实践经验 SDCC 2015将于2015年11月19 21日在北京
  • python语法--文件基本操作(一)

    python语法 文件基本操作 文件基本操作 打开文件 open name mode encoding name 文件名 可以包括路径 mode 设置打开文件的模式 只读r 写入w 追加a等 encoding 编码格式 推荐utf 8 f
  • layui实现Tree组件前后端交互

    文章目录 前言 运行效果 Tree组件 1 Tree组件的加载方式 1 1选项卡 2 Tree组件的渲染格式 3 基础参数 4 数据源属性选项 后台代码实现 1 定义对应数据格式实体 2 数据转换 3 树结构存储的处理 角色处理 1 思路
  • Zookeeper巨坑的一个问题 & 启动不了zkServer-闪退等情况

    1 配置环境变量 不然无法启动服务 2 此时不应有 java jdk1 8 cmd报这种错误 第一检查java环境变量是否错误 是否包含空格 第二就是我这种情况 一定要注意打开服务需要64位目录下的java
  • C++ 结束进程

    有时候进程未正常退出 导致进程列表遗留僵尸进程 程序启动需要杀死这种僵尸进程 include TLHELP32 H void TerminateSelfApplication TCHAR szFileName MAX PATH 0 TCHA
  • jmeter接口应用3:jmeter后置处理器-正则表达式提取器

    今天将继续讲解jmeter中关于后置处理器中的用法 也叫提取器 详情参考 https www toutiao com article 7195493970682692154 正则表达式提取器 正则表达式提取器提取内容有两种 一种是提取字符串
  • div向右偏移设置 css让div靠右移一定距离

    转自 https www thinkcss com shili 1372 shtml div对象盒子向右偏移设置 使用css让div靠右一定距离 div向右移教程实例篇 div向右偏移一定距离 可采用margin外边距实现 也可以使用pad
  • shell脚本模块化

    shell脚本模块化 模块化的优点 功能清晰 易于维护 便于阅读 代码复用 源代码 只有单一的一个run sh文件 bin bash 功能 更新小程序并重新启动 设置程序出错时不再继续执行 set e 查找app的进程号并杀死该进程 ech
  • 网络端口号和协议号(大全)

    网络端口号 作用 端口号的主要作用是表示一台计算机中的特定进程所提供的服务 网络中的计算机是通过IP地址来代表其身份的 它只能表示某台特定的计算机 但是一台计算机上可以同时提供很多个服务 如数据库服务 FTP服务 web服务等 我们就通过端
  • python中哈希表和set的使用

    哈希表不能将可变对象作为key值 即引用类型的内容不能是可变的 这样不安全 因为hashcode函数是根据对象的内容计算出key和value的位置 如果引用的内容可变 那么每次查找的位置结果都不一样 之前存储的键值对就会找不到 不符合has
  • 区块链技术之分布式存储

    随着互联网技术应用技术的普遍使用 所有行业的数据量指数级增长 数据存储技术都需要更新 分布式存储是一种数据存储技术 它可以跨多个物理服务器传播文件 块存储或者对象存储 以实现高可用性 数据备份和灾难恢复目的 可扩展的存储服务以及数据中心的巨
  • K8S的金丝雀发布(Canary Release)

    金丝雀发布 Canary Release 1 概念 2 相关架构理念 3 金丝雀发布部署操作 4 访问测试 5 金丝雀隔离新的pod 6 重建 7 获取当前集群中所有的终结点 8 登录旧的pod中测试 9 查看更新状态信息 总结 1 概念
  • 树链剖分

    树链剖分 两个核心思想 将一棵树转化成一个序列 树中路径转化成 log n 段连续区间 相关概念 重儿子 某个节点的子节点所构成的子树中 子树节点数量最多对应的子节点为重儿子 如果有多个相同的最大数量 则任选一个为重儿子 也就是说 每个节点
  • Node.js 创建一个简单的web服务器

    Node可以写 web服务器 命令行工具 网络爬虫 桌面应用程序开发等 今天 我们利用node写一个简单的web服务器 一 引入主模块 let http require http 二 创建一个服务器 createServer可以看到源码注入
  • 微信小程序子页面自定义tabbar组件

    一 先言 有时候微信小程序会遇到代码合并 就比如把B小程序代码迁移到A小程序 要使得B作为A小程序的一个子页面子功能 因为本身小程序都有tabbar 原来B也有 这时候就要给B子功能自定义一个tabbar底部导航栏 注意 这个不是微信小程序