位置: IT常识 - 正文

uniapp自定义动态tabbar及全局挂载底部自定义组件(uniapp动态设置标题)

编辑:rootadmin
uniapp自定义动态tabbar及全局挂载底部自定义组件

推荐整理分享uniapp自定义动态tabbar及全局挂载底部自定义组件(uniapp动态设置标题),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:uniapp动态修改样式,uniapp动态修改tabbar,uniapp动态启动页面,uniapp动态修改样式,uniapp 动态生成页面,uniapp自定义加载动画,uniapp动态修改样式,uniapp 动态生成页面,内容如对您有帮助,希望把文章链接给更多的朋友!

本篇文章解决的问题如下:

1:uniapp在pages.json中定义的tabbar,在非tabbar页面的时候不会显示,所以自定义了一个tabbar组件。(注意是自定义组件不是官方的custom-tab-bar组件)

2:有些tabbar需要动态变化,会员登陆前和会员登陆后可能会需要在tabbar上面展示不同的项目,所以要做到动态判断

3:uniapp所有页面底部都插入同一个组件(例如版权信息,或右侧悬浮的内容),每个页面都引入一次太过麻烦,所以在main.js里面挂载一次就可以所有页面使用。

uniapp自定义动态tabbar及全局挂载底部自定义组件(uniapp动态设置标题)

一:自定义tabbar组件:(就不需要在pages.json里面再定义tabbar了)

<!-- @时间:2020-03-16 @描述:自定义底部导航栏 @使用: 在main.js全部引入: import tabBar from "@/pages/common/tabBar.vue" Vue.component('tabBar', tabBar) 在需要显示的页面底部添加: <view> <view>这里是页面内容代码区域</view>       // 其中uni-p-b-98是公共样式类名,表示padding-bottom: 98upx; 设置的98upx是和底部导航栏的高度保持一致,页面的内容就不会被底部导航遮挡住啦 <view class="uni-p-b-98"></view>       // 最后引入自定义组件,并传当前栏目对应的pagePath到自定义组件,显示当前栏目的选中样式 <tabBar :pagePath="'/pages/tabBar/home/home'"></tabBar> </view> --><template> <view class="uni-tabbar"> <view class="uni-tabbar__item" v-for="(item,index) in tabbar" :key="index" @tap="changeTab(item)"> <view class="icon" :class="[item.fontIcon , item.pagePath == pagePath?'uni-active':'']"></view> <!-- 上面使用的是字体图标,解决切换页面的时候图标会闪的效果,毕竟每切换一个页面都会闪一下不太好看,可以切换使用下面的图片方式 --> <view v-if="false" class="uni-tabbar__bd"> <view class="uni-tabbar__icon"> <image v-if="item.pagePath == pagePath" class="uni-w-42 uni-h-42" mode="aspectFit" :src="item.selectedIconPath"></image> <image v-else class="uni-w-42 uni-h-42" mode="aspectFit" :src="item.iconPath"></image> </view> </view> <view class="uni-tabbar__label" :class="{'active': item.pagePath == pagePath}"> {{item.text}} </view> </view> </view></template><script> export default { props: { pagePath: null }, data() { return { page: 'contact', showPage: false, containerHeight: 400, tabbar: [ { "pagePath": "/pages/tabBar/home/home", "iconPath": "/static/tabBar/home.png", "selectedIconPath": "/static/tabBar/home_col.png", "text": "首页", "fontIcon": "icon-shouye" },            // 这里是要动态切换的栏目,先隐藏,动态追加 // { // "pagePath": "/pages/tabBar/manage/manage", // "iconPath": "/static/tabBar/home.png", // "selectedIconPath": "/static/tabBar/home_col.png", // "text": "管理", // "fontIcon": "icon-guanli" // }, { "pagePath": "/pages/tabBar/person/person", "iconPath": "/static/tabBar/person.png", "selectedIconPath": "/static/tabBar/person_col.png", "text": "我的", "fontIcon": "icon-wode" } ] }; }, mounted() { // true为判断条件,根据实际的需求替换即可 if(true) { this.tabbar.splice(1,0, { "pagePath": "/pages/tabBar/manage/manage", "iconPath": "/static/tabBar/home.png", "selectedIconPath": "/static/tabBar/home_col.png", "text": "管理", "fontIcon": "icon-guanli" } ) } }, methods: { changeTab(item) { this.page = item.pagePath;          // 这里使用reLaunch关闭所有的页面,打开新的栏目页面 uni.reLaunch({ url: this.page }); }, } }</script><style lang="scss" scoped> [nvue] uni-scroll-view, [nvue] uni-swiper-item, [nvue] uni-view { flex-direction: unset; } [nvue-dir-column] uni-swiper-item, [nvue-dir-column] uni-view { flex-direction: unset; } .uni-tabbar { position: fixed; bottom: 0; z-index: 999; width: 100%; display: flex; justify-content: space-around; height: 98upx; padding: 16upx 0; box-sizing: border-box; border-top: solid 1upx #ccc; background-color: #fff; box-shadow: 0px 0px 17upx 1upx rgba(206, 206, 206, 0.32); .uni-tabbar__item { display: block; line-height: 24upx; font-size: 20upx; text-align: center; } .uni-tabbar__icon { height: 42upx; line-height: 42upx; text-align: center; } .icon { display: inline-block; } .uni-tabbar__label { line-height: 24upx; font-size: 24upx; color: #999; &.active { color: #1ca6ec; } } }</style>

然后在各页面中使用组件即可

**注意修改代码中的页面路径**

**注意使用字体图标的话需要先在APP.Vue中引入iconfont.css**

<tabBar :pagePath="'/pages/list/list'"></tabBar>

 **传入的路径用于当前项目高亮**

二:全局挂载自定义组件(在main.js中)

import Vue from 'vue'Vue.prototype.baseUrl = tools.baseUrlVue.config.productionTip = falseimport tabBar from "@/components/tabbar/tabbar.vue"Vue.component('tabBar', tabBar)import Aside from "@/components/aside/aside.vue"Vue.component('Aside', Aside)

**注意要放在import Vue之后才行**

然后在各个页面中无须再import,也无须再components注册,直接<Aside></Aside>就可以用了。

本文链接地址:https://www.jiuchutong.com/zhishi/289677.html 转载请保留说明!

上一篇:弗吉尼亚理工大学利用OpenText Exceed TurboX (ETX)对高性能图形应用程序进行访问(弗吉尼亚理工大学美国排名)

下一篇:最贵的微博是什么(史上最贵的微博)

  • 荣耀70pro+怎么换铃声(荣耀70pro怎么换主题)

    荣耀70pro+怎么换铃声(荣耀70pro怎么换主题)

  • 支付宝怎么查询社保卡余额(支付宝怎么查询社保缴费记录)

    支付宝怎么查询社保卡余额(支付宝怎么查询社保缴费记录)

  • 如何清理c盘无用文件(如何清理C盘无用资料)

    如何清理c盘无用文件(如何清理C盘无用资料)

  • 微信面对面建群无法获取位置信息(微信面对面建群怎么设置管理员)

    微信面对面建群无法获取位置信息(微信面对面建群怎么设置管理员)

  • 为什么小号扩列不能匹配(小号扩列怎么没有了)

    为什么小号扩列不能匹配(小号扩列怎么没有了)

  • 华为微信夜间模式怎么设置(华为微信夜间模式怎么设置回来)

    华为微信夜间模式怎么设置(华为微信夜间模式怎么设置回来)

  • qq表情doge什么意思(qq里面doge表情是什么意思)

    qq表情doge什么意思(qq里面doge表情是什么意思)

  • 硒鼓错误将蓝色滑块来回滑动怎么解决(硒鼓错误将蓝色滑块来回滑动怎么解决一打印就卡纸)

    硒鼓错误将蓝色滑块来回滑动怎么解决(硒鼓错误将蓝色滑块来回滑动怎么解决一打印就卡纸)

  • 申请快手永久封禁恢复(申请快手永久封禁恢复网站)

    申请快手永久封禁恢复(申请快手永久封禁恢复网站)

  • 秘乐短视频是干什么的(秘乐短视频是什么)

    秘乐短视频是干什么的(秘乐短视频是什么)

  • word文档红色波浪线什么意思(word文档红色波浪线和蓝色波浪线)

    word文档红色波浪线什么意思(word文档红色波浪线和蓝色波浪线)

  • 号码归属地有什么用(号码归属地有什么)

    号码归属地有什么用(号码归属地有什么)

  • 朋友圈第一行文字怎么居中(朋友圈第一行文字空格)

    朋友圈第一行文字怎么居中(朋友圈第一行文字空格)

  • 平板电脑卡住了怎么办(平板电脑卡住了开不了机怎么办)

    平板电脑卡住了怎么办(平板电脑卡住了开不了机怎么办)

  • qq为什么莫名被拉进群(qq为什么会被莫名其妙冻结)

    qq为什么莫名被拉进群(qq为什么会被莫名其妙冻结)

  • wpa是什么(wpa是什么意思手机连不上无线网)

    wpa是什么(wpa是什么意思手机连不上无线网)

  • window中的桌面指的是(windows10的桌面指)

    window中的桌面指的是(windows10的桌面指)

  • 微博怎么删除所有粉丝(微博怎么删除所有自己发出的微博)

    微博怎么删除所有粉丝(微博怎么删除所有自己发出的微博)

  • 怎么删除京东已评价(怎么删除京东已买过的订单)

    怎么删除京东已评价(怎么删除京东已买过的订单)

  • qq注销后可以恢复吗(qq注销后恢复了还能查到聊天记录吗)

    qq注销后可以恢复吗(qq注销后恢复了还能查到聊天记录吗)

  • 降权处置1-3什么意思(降权处理不好的危害)

    降权处置1-3什么意思(降权处理不好的危害)

  • uc怎么看隐私相册(uc怎么查看私密相册)

    uc怎么看隐私相册(uc怎么查看私密相册)

  • 苹果xr新机有原膜吗(苹果xr原厂版本是多少)

    苹果xr新机有原膜吗(苹果xr原厂版本是多少)

  • iphonexs离开耳朵屏幕不亮(iphonex离开耳朵后不亮)

    iphonexs离开耳朵屏幕不亮(iphonex离开耳朵后不亮)

  • 快手怎么举牌(快手举牌照是什么意思)

    快手怎么举牌(快手举牌照是什么意思)

  • 手机迅雷口令如何使用(手机迅雷口令怎么用)

    手机迅雷口令如何使用(手机迅雷口令怎么用)

  • 微信电话录音怎么打开(微信电话录音怎么取消掉)

    微信电话录音怎么打开(微信电话录音怎么取消掉)

  • 向日葵上的靛蓝彩旗鸟 (© William Krumpelman/Getty Images)(蓝色向日葵)

    向日葵上的靛蓝彩旗鸟 (© William Krumpelman/Getty Images)(蓝色向日葵)

  • 2021年餐饮业的税率是多少?
  • 什么是纳税义务人,在理解这一观念时应注意哪些问题
  • 个体工商户月销售额超10万怎么报税
  • 计提城市维护建设费和教育费附加的会计分录
  • 计入固定资产和其他资产
  • 营销策划合同需要缴纳印花税吗
  • 贸易公司经营范围有限制吗
  • 审计调整分录做在哪一年
  • 人力资源的差额征收怎么报企业所得税
  • 公司个人薪金怎么申报宁波
  • 会计核算制度的案例
  • 工业企业生产费用要素
  • 职工伤残补助金被单位扣留违反什么法
  • 预付房租摊销账务处理
  • 咨询费发票入账风险
  • 劳务费的专用发票有哪些
  • 工人保险一个月多少钱
  • 个人劳务费发票可以委托其他人去开吗
  • 营改增租赁服务有哪些
  • 酒类消费税征收环节归纳
  • 免税发票备注栏
  • 增值税专用发票的税率是多少啊
  • 广告宣传费可以抵扣进项税吗
  • 收到财付通打款认证冲减财务费用怎么做分录
  • 个税扣缴端如何删除员工信息
  • 抵扣进项税有期限吗
  • 购买厂房可以一次买卖吗
  • 不开票的收入怎么避税
  • 补交上一年度的所得税怎么做账
  • 手机cpu性能排行榜2023最新天梯图
  • scanserver.exe - scanserver是什么进程 有什么用
  • win10应用图标怎么调出来
  • 苹果电脑怎么打顿号
  • 以产品对外投资需要进项税额转出吗
  • PHP:mb_stristr()的用法_mbstring函数
  • win7系统配置服务哪些启用
  • 本月营业利润
  • php正则表达式匹配链接
  • Yii CDBCriteria常用方法实例小结
  • nodejs的安装与配置mac
  • phpwhile循环多维数组
  • java基础变量字节
  • 账实不符的后果和对策
  • 无偿受赠房屋 交个人所得税嘛
  • 只开发票没有合同也要印花税吗
  • "服务业"
  • 个体户税务分几种
  • 购入不动产的税率是多少
  • 微信小程序 滚动 变色
  • 如何免费用别人家的wifi
  • 委托加工物资科目贷方登记的内容有什么
  • 小额贷款在银行需要什么条件
  • 资产已报废折旧怎么算
  • 公司名义看望病人慰问金用什么包
  • 应计利息是什么类科目核算
  • 新产品的研发费用扣除例题
  • 工会经费补缴的流程
  • 个体户未进行抄报税怎么处罚
  • 增值税留抵退税申请流程
  • 未按照规定编制应急预案的,责令限期改正,可以处罚款
  • c 语言 mysql
  • mysql理论知识
  • 数据库汉字转拼音
  • mysql5.7.21安装
  • win8怎么运行
  • win8系统怎么重置
  • macbook系统怎么用
  • centos搭建服务器
  • number fields to_char
  • js兼容ie
  • 创建nodejs项目的步骤
  • 安卓手机的手势密码保存在哪个文件
  • python中生成随机小数的函数
  • unity3d人物模型
  • 税务机关一案双查管理办法
  • 财税专家刘杨简历图片介绍
  • 四川税局官网发票
  • 税务罚款会影响宝宝当公务员不
  • 以房产作价投资增值税怎么算
  • 允许抵扣和不允许抵扣进项税额的发票种类
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设