技术背景:基于vue得微信小程序(mpvue)
需求场景:不同得用户角色,tabbar不一样,并且一个角色可以切换至另一个角色
方法:
1,在app.vue的生命周期函数created里隐藏原生的tabbarwx.hideTabBar()
在这里判断当前的角色,走接口或者其他逻辑,我这里写的demo就用的缓存wx.setStorageSync('type','student')
2,封装tabbar组件
html:
js逻辑:
在生命周期函数created中根据不同的角色给navList赋值,这里onShow也写了同样的代码是因为第一次加载组件的时候只会执行created,但是后面用这个组件的时候只会执行onShow,这里优化项就是把赋值这一步封装起来再两个周期函数中调用,代码复用
3,在tabbar页面调用组件
导入:import tabBar from "@/components/tabBar";
声明:components: { tabBar },
用:<tab-bar :selectNavIndex="2"/>
注:有的地方要使用双标签才能显示
这样就欧克了,selectNavIndex是当前tabbar页面的下标
切换角色:
存缓存的success回调里面跳转前的判断写反了,因为this.type已经改变了
写完了就觉得比较简单,所以有些细节可能没有说到,有问题可以留言,demo我放到git上了,希望能帮助到和我一样的小白白
git地址:https://github.com/Lagger-Wq/mpvue-defaultTabbar