当前位置:   article > 正文

uniApp自定义底部导航栏 凸起效果_uni底部突起

uni底部突起
  1. 今天的需求是自定义导航栏,后来想了想可能又要考虑到适配机型的情况,还挺麻烦的所以先去看了下 uview组件库,没想到人家都已经有写好的了和我需求完全相符。
  2. 基本教程看文档就会 很简单 https://www.uviewui.com/components/tabbar.html
  3. 以下主要讲使用时候遇到的几个坑
  4. 1.数据可以放到vuex 但是直接引用会h5正常,小程序失效,必须在组件的onLoad里面 重新赋值一次
  5. 例如我的vuex State中有一个List数组 ->
  6. state: {
  7. hasLogin: false,
  8. isUniverifyLogin: false,
  9. loginProvider: "",
  10. openid: null,
  11. testvuex: false,
  12. colorIndex: 0,
  13. colorList: ['#FF0000', '#00FF00', '#0000FF'],
  14. noMatchLeftWindow: true,
  15. active: 'componentPage',
  16. leftWinActive: '/pages/component/view/view',
  17. activeOpen: '',
  18. menu: [],
  19. univerifyErrorMsg: '',
  20. //vuex保存状态部分
  21. userInfoWx: null, //用户个人信息从local中获取
  22. //保存底部tabBarList列表
  23. tabBarList: [{
  24. pagePath: "/pages/index/index", //页面地址
  25. iconPath: "/static/tabBar/IndexOff.png", //未选中时的图片
  26. selectedIconPath: "/static/tabBar/IndexOn.png", //选中时的图片
  27. text: "首页" //菜单文字
  28. },
  29. {
  30. pagePath: "/pages/Business/Business",
  31. iconPath: "/static/tabBar/ShangJiaOff.png",
  32. selectedIconPath: "/static/tabBar/ShangJiaOn.png",
  33. text: "商家"
  34. },
  35. {
  36. pagePath: "/pages/distribution/distribution",
  37. iconPath: "/static/tabBar/Fenxiao.png",
  38. selectedIconPath: "/static/tabBar/Fenxiao.png",
  39. text: "分销客",
  40. midButton: true,
  41. },
  42. {
  43. pagePath: "/pages/Order/Order",
  44. iconPath: "/static/tabBar/DingDanOff.png",
  45. selectedIconPath: "/static/tabBar/DingDanOn.png",
  46. text: "订单"
  47. },
  48. {
  49. pagePath: "/pages/My/My",
  50. iconPath: "/static/tabBar/MyOff.png",
  51. selectedIconPath: "/static/tabBar/MyOn.png",
  52. text: "我的"
  53. },
  54. ]
  55. 在页面我本来想这样直接引用
  56. <!-- 底部导航栏 -->
  57. <u-tabbar @change="$tabChange" :list="$store.state.tabBarList" :mid-button="false"></u-tabbar>
  58. 这样正常在h5没问题,可以展示,切换,但是到了小程序,底部就获取不到数据了。
  59. 于是我去把uview下的模板项目打开去小程序跑了一次,发现他的没问题,所以我就在看我们的不同点开始找办法。
  60. 最后发现果然是vuex的数据丢失了。 具体我也不知道为啥,有懂得老哥可以说一下。。
  61. 然后我就在onLoad里面 和data里面 重新对属性进行赋值了一次。就好了。
  62. data() {
  63. return {
  64. tabList:'',
  65. }
  66. onLoad(){
  67. this.tabList = this.$store.state.tabBarList; //启用自定义导航栏
  68. }
  69. 这样小程序就正常了。。
  70. 接下来又遇到另外一个问题,由于该组件会自动隐藏原生的uni底部标签栏,所以原生的tab切换事件也就失效了,替代的是组件封装好的 @change 方法 或者before-switch 切换之前触发的方法
  71. 我选择了change 可以获取到点击的tab 目前暂时没遇到什么问题,后续遇到坑会追加的。

展示一下效果图  选中前

选中后   

 

还好有uview组件封装好了适配底部机型,并且性能也是不错的。不然要自己去写兼容了 。

感谢uview

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/113151
推荐阅读
相关标签
  

闽ICP备14008679号