当前位置: 首页 > news >正文

长沙市网站建设_网站建设公司_全栈开发者_seo优化

柴沟堡网站建设,苏州广告设计制作公司,手机网站开发要多久,东莞网站免费制作一、背景 最近在做一个uniapp开发的小程序遇到一个需求#xff0c;希望不同用户登录后展示不同的tabbar页面#xff0c;但是uniapp项目中的pages.json是只有一个list数组的#xff0c;并且是不能写成动态效果#xff0c;为了实现这个需求#xff0c;便自定义了tabbar组件 …一、背景 最近在做一个uniapp开发的小程序遇到一个需求希望不同用户登录后展示不同的tabbar页面但是uniapp项目中的pages.json是只有一个list数组的并且是不能写成动态效果为了实现这个需求便自定义了tabbar组件 二、效果展示 2.1、角色1admin账号登录效果 2.2、角色2tom账户登录效果 三、前置工作 3.1、将登录页面作为用户进入小程序展示的第一个页面pages.json文件中的pages数组第一个设为login页面 3.2、pages.json配置tabbar的基本路径只需路径即可 {pages: [ //pages数组中第一项表示应用启动页参考https://uniapp.dcloud.io/collocation/pages{path : pages/login/login,style : {navigationBarTitleText: ,enablePullDownRefresh: false}},{path: pages/index/index,style: {navigationBarTitleText: }},{path : pages/my/my,style : {navigationBarTitleText: ,enablePullDownRefresh: false}},{path : pages/warn/warn,style : {navigationBarTitleText: ,enablePullDownRefresh: false}}],globalStyle: {navigationBarTextStyle: black,navigationBarTitleText: uni-app,navigationBarBackgroundColor: #F8F8F8,backgroundColor: #F8F8F8},uniIdRouter: {},tabBar: {color: #999,selectedColor: #0aa671,borderStyle: white,list: [{pagePath: pages/index/index},{pagePath: pages/warn/warn},{pagePath: pages/my/my}]} }四、创建tabbar组件 4.1、第一步在项目中创建components文件夹并在文件夹下创建tabbar组件 tabbar组件具体代码如下 templateview classtabview v-for(item,index) in list :keyindex classtab-item clickswitchTab(item, index)image classtab_img :srccurrentIndex index ? item.selectedIconPath : item.iconPath/imageview classtab_text :style{color: currentIndex index ? selectedColor : color}{{item.text}}/view/view/view /templatescriptexport default {props: {selectedIndex: { // 当前选中的tab indexdefault: 0},},data() {return {color: #666666,selectedColor: #00BAB2,list: [],currentIndex:0,}},created() {this.currentIndex this.selectedIndex;let _this thisif (uni.getStorageSync(identify) tom) {//角色1_this.list [{pagePath: /pages/index/index,iconPath: /static/tab/home.png,selectedIconPath: /static/tab/home_active.png,text: 首页},{pagePath: /pages/my/my,iconPath: /static/tab/my.png,selectedIconPath: /static/tab/my_active.png,text: 我的}]} else {//角色2_this.list [{pagePath: /pages/index/index,iconPath: /static/tab/home.png,selectedIconPath: /static/tab/home_active.png,text: 首页},{pagePath: /pages/warn/warn,iconPath: /static/tab/warn.png,selectedIconPath: /static/tab/warn_active.png,text: 告警},{pagePath: /pages/my/my,iconPath: /static/tab/my.png,selectedIconPath: /static/tab/my_active.png,text: 我的}]}},methods: {switchTab(item, index) {this.currentIndex index;let url item.pagePath;uni.redirectTo({url:url})}}} /scriptstyle langscss.tab {position: fixed;bottom: 0;left: 0;right: 0;height: 100rpx;background: white;display: flex;justify-content: center;align-items: center;padding-bottom: env(safe-area-inset-bottom); // 适配iphoneX的底部.tab-item {flex: 1;text-align: center;display: flex;justify-content: center;align-items: center;flex-direction: column;.tab_img {width: 60rpx;height: 60rpx;}.tab_text {font-size: 30rpx;margin-top: 9rpx;}}} /style 注意 跳转路径pagePath以/开头 说明tab_img可以修改图标大小tab_text可以修改文字大小 4.2、第二步 在main.js文件中将自定义的tabBar定义为全局组件 //⭐⭐ main.js 文件 import tabBar from /components/tabbar/tabbar.vue Vue.component(tabBar,tabBar) 4.3、第三步在需要使用的页面引入tabbar组件 //如 index页面 templateview告警tabBar selectedIndex 0/tabBar/view /template//如 warn 页面 templateview告警tabBar selectedIndex 1/tabBar/view /template//如 my 页面 templateview告警tabBar selectedIndex 2/tabBar/view /template 4.4、第四步隐藏pages.json里配置的导航栏使用封装的tabbar组件在需要引入tabbar组件的页面进行配置 //如 warn 页面 index 和 my 页面也是同样的设置 scriptexport default {onShow() {//⭐隐藏pages.json里配置的导航栏使用封装的tabbar组件uni.hideTabBar({animation:false})}} /script 五、登录页面根据不同身份进行tabbar切换逻辑 //登录 login 页面 template view classcontainer view classform-group text用户名/text input v-modelusername typetext placeholder请输入用户名/input /viewview classform-groupview stylemargin-left: 30rpx;/view text密码/text input v-modelpassword typepassword placeholder请输入密码/input /view view classbtn-login button clicklogin登录/button /view /view /templatescript export default {data() {return {//页面上设置的默认账户admin密码123456username: admin,password: 123456};},onShow() {uni.clearStorageSync(identify)},methods: {login() {const username this.username;const password this.password;let identify ;// 根据用户名和密码来确定身份if (username tom password 123456) {identify tom;} else if (username admin password 123456) {identify admin;} else {// 用户名或密码错误console.log(用户名或密码错误);return;}//本地存储uni.setStorageSync(identify, identify);// 跳转到首页uni.switchTab({url: /pages/index/index});}} }; /scriptstyle scoped .container { padding: 30rpx; }.form-group {display: flex;align-items: center;justify-content: center; margin-bottom: 30rpx; } input{border: 1rpx solid #00BAB2;padding: 10rpx; } button { background-color: #00BAB2; color: white; border: none; border-radius: 20rpx; } /style六、问题拓展 6.1、问题当是角色1时点击tabbar我的页面文字和图标造成颜色闪烁 6.2、原因角色1是有两个tabbar “我的”页面对应的index值是1而selectedIndex 被设置为超出角色1 tab 的索引范围。在这种情况下currentIndex 的默认值为0而将 selectedIndex 设置为2 会导致 currentIndex 与实际选中的 tab 不一致进而导致文字和图标显示颜色发生闪烁。 6.3、解决在传递 selectedIndex 给 tabBar 组件时进行判断并确保它不会超出角色1 tab 的索引范围 6.4、重新修改my页面 // my 页面 templateview我的tabBar :selectedIndexselectedTabIndex/tabBar/view /templatescriptexport default {computed: {//判断是什么角色selectedTabIndex() {return uni.getStorageSync(identify) tom ? 1 : 2;}},onShow() {uni.hideTabBar({animation:false})},} /script PS如果对你有帮助的话请给个赞有问题欢迎大家在评论区讨论。ღ( ´ᴗ )  ღ( ´ᴗ )
http://www.ihoyoo.com/news/14419.html

相关文章:

  • 公司网站建设提纲企业如何做好网络营销
  • 长春网络公司做网站公司支付网站款做凭证
  • 江苏省现代化实训基地建设网站如何做淘客发单网站
  • 安防公司网站模板哪里可以注册公司
  • 山东网站建设哪里好网站公司网站定制
  • 怎么免费创建百度网站做网站应该会什么软件
  • 网页设计个人网站怎么做asp.net mvc做网站难吗
  • wordpress采集站源码外链管理
  • 男人女人做性关系网站网络营销中网站的目的是
  • 电商网官方网站网站访客qq获取系统 报价
  • 成绩查询网站开发一站多通怎么做网站
  • 海原网站建设wordpress 数据包
  • 建设工程质量监督站网站软文营销方案
  • 襄阳网站建设价格低网站优化联系
  • 山东做网站建设的好公司排名手机版网站系统
  • 网站建设细节差异化开发一个小程序大概要多少钱
  • 重庆网站建设公php投资网站源码
  • 建设企业网站企业网上银行博购企业名录搜索软件
  • 商城网站建设的注意事项东莞在建工程
  • 网站开发需解决什么问题伊春seo
  • 建立网站 要怎么做制作海报用什么软件
  • 网站关键词优化推荐贵阳方舟网络6电子商务网站开发实训体会
  • wordpress 中文语言包广东短视频营销seo推荐
  • 网站的后缀名怎么建设制作网站需要怎么做
  • 如何做网站地图视频建筑行业教育培训平台
  • 电子产品去什么网站做站点平面设计网站培训中心
  • 分类网站有哪些深圳网站制作的公司哪家好
  • 高端网站制作 专业制作平台网站如何连接微信支付宝吗
  • 建站之星和凡科建站哪个系统好网站建设与维护 实训
  • cpa单页网站怎么做上海seo排名