微信小程序自定义底部导航栏组件
2021/10/19 20:39:49
本文主要是介绍微信小程序自定义底部导航栏组件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、在自己项目的公共组件的文件价下新建tabbar.vue(定义的自定义导航栏组件)
<template> <view v-if="showTabbar" class="tabbar"> <view v-for="(item, index) in tabList" :key="index" class="icon" @click="switchTabBar(item.path, index)" > <image :src="index == current ? item.iconActivePath : item.iconPath"></image> <text :class="index == current ? 'active_text' : 'text'" bindtap = 'go'>{{ item.name }}</text> </view> </view> </template> <script> // import container from '@/channelMessage/get-container' export default { props: { showTabbar: { type: Boolean, default: true, }, current:{ // 当前页面index type:Number, default:0 }, }, data() { return { selectedIndex: 0, tabList: [ { name: "首页", iconPath: require("../../../static/image/img/tab-home-nor.png"), iconActivePath: require("../../../static/image/img/tab-home-sel.png"), path: "/pages/index/index", }, { name: "购物车", iconPath: require("../../../static/image/img/tab-cart-nor.png"), iconActivePath: require("../../../static/image/img/tab-cart-sel.png"), path: "/pages/cart/cartEdit", }, { name: "我的", iconPath: require("../../../static/image/img/tab-my-nor.png"), iconActivePath: require("../../../static/image/img/tab-my-sel.png"), path: "/pages/mine/mine", }, ], } }, onShow() { // const containerId = container.getContainerId() // if (containerId == '1000') { // this.showTabbar = false // } }, methods: { switchTabBar(path, index) { this.item_index = index wx.switchTab({ url: path, }) // this.$router.replace(path) }, }, } </script> <style lang="scss" scoped> .tabbar { position: fixed; bottom: 0; z-index: 10; display: flex; align-items: center; justify-content: space-around; width: 100%; height: 100rpx; background-color: #ffffff; padding-bottom: constant(safe-area-inset-bottom); padding-bottom: env(safe-area-inset-bottom); .icon { display: flex; flex-direction: column; align-items: center; image { width: 50rpx; height: 50rpx; } } .active_text{ font-size: 20rpx; margin-top: 5rpx; color: #d81e06; } .text{ font-size: 20rpx; margin-top: 5rpx; } } </style>
2、在项目中的pages.json文件中新增代码,保证tabbar.vue中的wx.switchTab可以正常使用,代码如下:
"tabBar": { "selectedColor": "#EE2F51", "list": [{ "pagePath": "pages/index/index", "text": "首页", "iconPath": "static/image/img/tab-home-nor.png", "selectedIconPath": "static/image/img/tab-home-sel.png" },{ "pagePath": "pages/cart/cartEdit", "text": "购物车", "iconPath": "static/image/img/tab-cart-nor.png", "selectedIconPath": "static/image/img/tab-cart-sel.png" },{ "pagePath": "pages/mine/mine", "text": "我的", "iconPath": "static/image/img/tab-my-nor.png", "selectedIconPath": "static/image/img/tab-my-sel.png" }] },
3、在main.js中全局注册自定义组件
import tabBar from "./customComponents/commonComponents/tabBar/index.vue";//换自己的组件位置,这里的index.vue就是前面所说的tabbar.vue Vue.component("tabBar", tabBar);
4、在需要使用导航栏的页面引入注册的组件
//为页面引入导航栏组件 <tabBar :current=item_index></tabBar> //标记状态,是的导航栏可以根据页面显示不同的激活状态 data() { return { item_index: 0, } } //隐藏微信自带的导航栏 onLoad() { wx.hideTabBar(); },
5、展示效果
这篇关于微信小程序自定义底部导航栏组件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-20微信小程序开发入门指南
- 2024-12-20小程序 createCameraContext() 怎么实现识别条形码功能?-icode9专业技术文章分享
- 2024-11-22微信小程序的接口信息py可以抓到吗?-icode9专业技术文章分享
- 2024-11-22怎样解析出微信小程序二维码带的参数?-icode9专业技术文章分享
- 2024-11-22微信小程序二维码怎样解析成链接?-icode9专业技术文章分享
- 2024-11-22微信小程序接口地址的域名需要怎么设置?-icode9专业技术文章分享
- 2024-11-22微信小程序的业务域名有什么作用-icode9专业技术文章分享
- 2024-11-22微信小程序 image有类似html5的onload吗?-icode9专业技术文章分享
- 2024-11-22微信小程序中怎么实现文本内容超出行数后显示省略号?-icode9专业技术文章分享
- 2024-11-22微信小程序怎么实现分享样式定制和图片定制功能?-icode9专业技术文章分享