我之前写一个微信小程序,保单万事通,有一个这样的功能

image.png

这个底部导航,如果用小程序自带的tabbar,根本无法实现,所有我想第2种方法来实现

微信小程序文档中,有一种这个方法,但是我不建议,体验极差。。。。使用首先可以通过在app.json里放入

{

"usingComponents": {

"mp-tabbar": "../../components/tabbar/tabbar"

}

}

然后组件引入

// page.js示例代码

Page({

data: {

list: [{

text: "对话",

iconPath: "/example/images/tabbar_icon_chat_default.png",

selectedIconPath: "/example/images/tabbar_icon_chat_active.png",

},

{

text: "设置",

iconPath: "/example/images/tabbar_icon_setting_default.png",

selectedIconPath: "/example/images/tabbar_icon_setting_active.png",

badge: 'New'

}]

},

tabChange(e) {

console.log('tab change', e)

}

});

但是这样写有个问题,就是换页面的时候,会导致整个页面重新刷新,用户体验不好

所以我建议,通过在app.json里放入tabbar

js

"tabBar": {

"custom": true,//组件替换属性

"color": "#7A7E83",

"selectedColor": "#333333",

"borderStyle": "black",

"backgroundColor": "#ffffff",

"list": [

{

"pagePath": "pages/guarantee/guarantee",

"iconPath": "assets/img/1.png",

"selectedIconPath": "assets/img/2.png",

"text": "保单万事通"

},

{

"pagePath": "pages/add/add",

"iconPath": "assets/img/add.png",

"text": "添加保单"

},

{

"pagePath": "pages/my/my",

"iconPath": "assets/img/6.png",

"selectedIconPath": "assets/img/7.png",

"text": "我的"

}

]

},

注意我加了一个属性 "custom": true,这个如果不加,就只能使用微信自带的tabbar底部导航了,无法按照自己的想法设计,所以,当你加了custom这个属性后,你只需要,在根目录下,添加一个组件 cumtom-tab-bar,你甚至都不需要去引进,小程序会自己去找这个组件,切记,放到根目录下,然后,你就可以随心所欲控制底部tabbar了

Component({

data: {

selected: 0,

color: "#7A7E83",

selectedColor: "#333333",

canCustom: true,

list: [

{

"pagePath": "/pages/guarantee/guarantee",

"iconPath": "/assets/img/1.png",

"selectedIconPath": "/assets/img/2.png",

"text": "保单"

},

{

"pagePath": "/pages/add/add",

"iconPath": "/assets/img/4.png",

"selectedIconPath": "/assets/img/add.png",

"text": "添加保单"

},

{

"pagePath": "/pages/my/my",

"iconPath": "/assets/img/6.png",

"selectedIconPath": "/assets/img/7.png",

"text": "我的"

}

]

},

created(){

},

lifetimes: {

attached: function () {

// getApp().watch(this.watchBack,this)

},

},

attached: function () {

// getApp().watch(this.watchBack, this)

},

methods: {

switchTab(e) {

const data = e.currentTarget.dataset

const url = data.path;

console.log(url);

var pages = getCurrentPages() //获取加载的页面

// var currentPage = pages[pages.length - 1] //获取当前页面的对象

// var urls = currentPage.route //当前页面url

// var options = currentPage.options //如果要获取url中所带的参数可以查看options

// console.log("route = ", urls);

console.log(url)

if (url == "/pages/add/add"){

getApp().globalData.switctTime++;

if (getApp().globalData.switctTime>1){

getApp().globalData.switctTime = 0;

wx.switchTab({

url: getApp().globalData.userUrl

})

return false;

}else{

wx.switchTab({

url:"/pages/add/add"

})

return false;

}

// if (urls == "pages/add/add"){

// getApp().globalData.userUrl = 1

// }

}else{

getApp().globalData.switctTime = 0;

getApp().globalData.userUrl = url;

}

// if(url==undefined){

// this.setData({

// selected: data.index

// })

// return;

// }

wx.switchTab({

url:url

})

this.setData({

selected: data.index

})

}

}

})

wxml

{{item.text}}

wxss

.tab-bar {

position: fixed;

bottom: 0;

left: 0;

right: 0;

height: 48px;

background: white;

display: flex;

padding-bottom: env(safe-area-inset-bottom);

z-index: 10000;

}

.tab-bar-border {

background-color: rgba(0, 0, 0, 0.33);

position: absolute;

left: 0;

top: 0;

width: 100%;

height: 1px;

transform: scaleY(0.5);

}

.tab-bar-item {

flex: 1;

text-align: center;

display: flex;

justify-content: center;

align-items: center;

flex-direction: column;

position: relative;

}

.tab-bar-item cover-image {

width: 27px;

height: 27px;

}

.tab-bar-item cover-view {

font-size: 10px;

}

小程序tabbar能放分包路径吗_微信小程序之如何自定义底部tabbar导航相关推荐

  1. 小程序tabbar能放分包路径吗_微信小程序底部导航Tabbar

    底部导航栏这个功能是非常常见的一个功能,基本上一个完成的app,都会存在一个导航栏,那么微信小程序的导航栏该怎么实现呢?经过无数的踩坑,终于实现了,好了,先看看效果图. 对于底部导航栏,小程序上给出的 ...

  2. 微信小程序系统教程Java版[3/3阶段]_微信小程序电商系统-翟东平-专题视频课程...

    微信小程序系统教程Java版[3/3阶段]_微信小程序电商系统-2445人已学习 课程介绍         微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识. 微信小 ...

  3. 视频教程-微信小程序系统教程Java版[3/3阶段]_微信小程序电商系统-微信开发

    微信小程序系统教程Java版[3/3阶段]_微信小程序电商系统 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试 ...

  4. 视频教程-微信小程序系统教程python版[3/3阶段]_微信小程序支付-手游开发

    微信小程序系统教程python版[3/3阶段]_微信小程序支付 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试 ...

  5. 微信小程序 自动解决分包大小问题_微信小程序分包加载设置

    设置分包加载 微信小程序分包限制为: 主包或者单个分包最大为2M 整体小程序所有包最大为8M 为什么需要设置分包? 小程序项目中,有多种角色(公共页面很少),设置分包加载方便管理 整个小程序压缩后代码 ...

  6. 微信小程序点击按钮弹出弹窗_微信小程序自定义弹窗(可通用)

    本文为自定义弹窗,该内容可满足如下需求: 自定义各种布局弹窗. 点击弹窗布局外消失弹窗 弹出弹窗时背景阴影半透明 各方向弹出效果(本文为自下而上弹出). (后续可能会补充新需求,或可以留言讨论你的需求 ...

  7. 微信小程序页面上面的名字怎么改_微信小程序取名|如何修改名字|取名规则!...

    原标题:微信小程序取名|如何修改名字|取名规则! 在过去的建站使其曾有「域名比老板重要」的说法,而现在,微信小程序的名字也至关重要,拥有一个好的名字,将能带来众多的流量.小程序名字虽然只是个简单的符号 ...

  8. 微信小程序 长按图片不出现菜单_微信小程序长按保存图片

    微信浏览器打开h5页面如果是img标签的话,长按会弹出保存图片的选项.但是微信小程序里面不可以,需要自己写这个功能. 这个功能有两个点,一个是长按,一个是保存图片到本地. 1. 微信小程序关于图片长按 ...

  9. 微信小程序页面上面的名字怎么改_微信小程序改名方法,小程序名称设置规范...

    小程序名称设置规范 1.名称设置方法 1)小程序名称可以由中文.数字.英文.长度在4-30个字符之间,一个中文字等于2个字符. 2)公众号.小程序在微信公众平台上的名称是唯一的,且属于同一主体下,可以 ...

最新文章

  1. python第三方库使用文档_python 的第三方库的使用
  2. 0074 几道面试题
  3. ZooKeeper系列(二)
  4. ARcore 相关学习
  5. Android 补间动画TranslateAnimation 位移效果
  6. input类型为number时鼠标滚动出现箭头
  7. 电脑屏幕为什么没有手机屏幕清晰?
  8. 摄像机DSP芯片介绍
  9. 接待员如何向客人upsell_前厅部接待员办理入住操作步骤
  10. windows环境部署django项目(可部署不同版本的django)
  11. 机器学习在美团配送系统的实践:用技术还原真实世界-笔记
  12. 猿创征文|Hexo+Github搭建完全免费个人博客详细教程
  13. 用Python求矩阵的广义逆
  14. MySQL添加字段和删除字段
  15. cad角度命令怎么输入_新手入门,学习CAD必须掌握,教你使用标注命令,绘图效率翻一倍...
  16. 从技术层面浅析美链BEC从诞生到覆灭
  17. 【文献翻译】信息安全管理自动化的可能性 - Automation possibilities in information security management
  18. HTML学习1:开发电影推荐网站
  19. 【JQ _DOM】DOM
  20. android studio怎么使用sharesdk,Android Studio中ShareSDK分享的使用.

热门文章

  1. 命令窗 创建vue 项目过程
  2. 信号量sem 的用法
  3. C、C++用指针引用的差异
  4. 如何构建自己的笔记系统?
  5. .iOS APP Project or Mac APP Project编译错误提示: My Mac 64-bit is not valid for Running the scheme...
  6. 51CTO下载中心资源上传协议
  7. Linux(centos7.4)上FTP服务器搭建(使用yum)
  8. linux通过rpm和yum安装包
  9. rename table table1 to table2;
  10. 【Data Guard】Oracle DataGuard 搭建