uniapp引入微信小程序版本VantUI,使用VantUI的自定义tabbar,并解决自定义tabbar出现闪烁的情况

视频教程地址:https://www.bilibili.com/video/BV13m41167iG

1.uniapp引入微信小程序版本VantUI

去vant官网下载源码,源码放在github,自行去下载下来
https://vant-contrib.gitee.io/vant-weapp/#/home

在这里插入图片描述

  • 在pages.json的globalStyle里面注册组件
	"globalStyle": {"navigationBarTextStyle": "black","navigationBarTitleText": "uni-app","navigationBarBackgroundColor": "#F8F8F8","backgroundColor": "#F8F8F8",//全局注册方式1 单个组件"usingComponents": {"van-tabbar": "/wxcomponents/vant/dist/tabbar/index","van-tabbar-item": "/wxcomponents/vant/dist/tabbar-item/index","van-search": "/wxcomponents/vant/dist/search/index","van-dialog": "/wxcomponents/vant/dist/dialog/index","van-field": "/wxcomponents/vant/dist/field/index","van-cell-group": "/wxcomponents/vant/dist/cell-group/index","van-divider": "/wxcomponents/vant/dist/divider/index","van-cell": "/wxcomponents/vant/dist/cell/index","van-button": "/wxcomponents/vant/dist/button/index","van-action-sheet": "/wxcomponents/vant/dist/action-sheet/index","van-uploader": "/wxcomponents/vant/dist/uploader/index","van-notify": "/wxcomponents/vant/dist/notify/index","van-icon": "/wxcomponents/vant/dist/icon/index","van-switch": "/wxcomponents/vant/dist/switch/index","van-radio": "/wxcomponents/vant/dist/radio/index","van-radio-group": "/wxcomponents/vant/dist/radio-group/index","van-popup": "/wxcomponents/vant/dist/popup/index",// "van-overlay": "/wxcomponents/vant/dist/overlay/index","van-cascader": "/wxcomponents/vant/dist/cascader/index","van-card": "/wxcomponents/vant/dist/card/index","van-submit-bar": "/wxcomponents/vant/dist/submit-bar/index","van-notice-bar": "/wxcomponents/vant/dist/notice-bar/index","van-checkbox": "/wxcomponents/vant/dist/checkbox/index","van-empty": "/wxcomponents/vant/dist/empty/index","van-steps": "/wxcomponents/vant/dist/steps/index","van-toast": "/wxcomponents/vant/dist/toast/index"},"app-plus": {"softinputNavBar": "none","scrollIndicator": "none"}},

在这里插入图片描述

  • 引入CSS样式
@import "/wxcomponents/vant/dist/common/index.wxss";

在这里插入图片描述

  • 在页面中引入按钮组件
<van-button type="primary">主要按钮</van-button>

在这里插入图片描述

2.自定义tabbar(点击跳转的时候tabbar会出现闪烁)

  • 设置自定义tabbar样式
	/* 隐藏原生tabbar */.uni-tabbar-bottom{display: none !important;}/* 使用vant-ui tabbar */.van-tabbar-bottom{position: fixed !important;bottom: 0 !important;width: 100% !important;z-index: 99999999 !important;border-top: 0 solid #ebedf0 !important;border-bottom-style: hidden !important;}.van-hairline--top-bottom:after{border-top-width: 1px !important;border-right-width: 0px !important;border-bottom-width: 0px !important;border-left-width: 0px !important;}

在这里插入图片描述

  • 编写自定义tabbar组件
<template><view><view class="van-tabbar-bottom"><van-tabbar :active="active" @change="onChange" :border="true" active-color="#898dda" inactive-color="#9c9c9c"><van-tabbar-item icon="chat-o">首页</van-tabbar-item><van-tabbar-item icon="contact">我的</van-tabbar-item></van-tabbar></view></view>
</template><script>import Toast from '@/wxcomponents/vant/dist/toast/toast';export default {name: "tabbar",data() {return {tabbarList: {0: "/pages/index/index",1: "/pages/my/my",},}},props: {active: Number},methods: {onChange(index) {uni.switchTab({url: this.tabbarList[index.detail]})},}}
</script><style scoped></style>

在这里插入图片描述

  • pages.json中设置tabbar
	"tabBar": {"custom": true,// 隐藏原生tabar 仅h5和微信小程序"height":"0.1rpx",// app 隐藏原生tabar需要将高度设置成最小0.1px rpx"borderStyle":"white","list": [{"pagePath": "pages/index/index"},{"pagePath": "pages/my/my"}]},

在这里插入图片描述

  • 在index.vue页面中调用自定义的tabbar
<template><view class="content">首页<van-button type="primary">主要按钮</van-button><view class="foot"><tabbar :active="0"></tabbar></view></view></template><script>import tabbar from "@/components/tabbar/tabbar"export default {data() {return {title: 'Hello'}},onLoad() {},methods: {}}
</script><style></style>

在这里插入图片描述
在my.vue页面中调用自定义的tabbar

<template><view>我的<view class="foot"><tabbar :active="1"></tabbar></view></view></template><script>import tabbar from "@/components/tabbar/tabbar"export default {data() {return {}},methods: {}}
</script><style></style>

在这里插入图片描述

  • 成功显示

在这里插入图片描述

完整的pages.json配置

{"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages{"path": "pages/index/index","style": {"navigationBarTitleText": "index"}},{"path" : "pages/my/my","style" :                                                                                    {"navigationBarTitleText": "my"}}],"globalStyle": {"navigationBarTextStyle": "black","navigationBarTitleText": "uni-app","navigationBarBackgroundColor": "#F8F8F8","backgroundColor": "#F8F8F8",//全局注册方式1 单个组件"usingComponents": {"van-tabbar": "/wxcomponents/vant/dist/tabbar/index","van-tabbar-item": "/wxcomponents/vant/dist/tabbar-item/index","van-search": "/wxcomponents/vant/dist/search/index","van-dialog": "/wxcomponents/vant/dist/dialog/index","van-field": "/wxcomponents/vant/dist/field/index","van-cell-group": "/wxcomponents/vant/dist/cell-group/index","van-divider": "/wxcomponents/vant/dist/divider/index","van-cell": "/wxcomponents/vant/dist/cell/index","van-button": "/wxcomponents/vant/dist/button/index","van-action-sheet": "/wxcomponents/vant/dist/action-sheet/index","van-uploader": "/wxcomponents/vant/dist/uploader/index","van-notify": "/wxcomponents/vant/dist/notify/index","van-icon": "/wxcomponents/vant/dist/icon/index","van-switch": "/wxcomponents/vant/dist/switch/index","van-radio": "/wxcomponents/vant/dist/radio/index","van-radio-group": "/wxcomponents/vant/dist/radio-group/index","van-popup": "/wxcomponents/vant/dist/popup/index",// "van-overlay": "/wxcomponents/vant/dist/overlay/index","van-cascader": "/wxcomponents/vant/dist/cascader/index","van-card": "/wxcomponents/vant/dist/card/index","van-submit-bar": "/wxcomponents/vant/dist/submit-bar/index","van-notice-bar": "/wxcomponents/vant/dist/notice-bar/index","van-checkbox": "/wxcomponents/vant/dist/checkbox/index","van-empty": "/wxcomponents/vant/dist/empty/index","van-steps": "/wxcomponents/vant/dist/steps/index","van-toast": "/wxcomponents/vant/dist/toast/index"},"app-plus": {"softinputNavBar": "none","scrollIndicator": "none"}},"tabBar": {"custom": true,// 隐藏原生tabar 仅h5和微信小程序"height":"0.1rpx",// app 隐藏原生tabar需要将高度设置成最小0.1px rpx"borderStyle":"white","list": [{"pagePath": "pages/index/index"},{"pagePath": "pages/my/my"}]},"uniIdRouter": {}
}

3.自定义tabbar(解决点击跳转的时候tabbar出现闪烁)

  • 互换位置,把tabbar写成页面,index和my写成组件,然后在tabbar页面中引入index和my组件切换即可

···

  • pages.json中去掉tabbar配置,在pages:[]配置页面中只需要配置tabbar这个页面即可

在这里插入图片描述

  • tabbar.vue页面
<template><view><!-- 组件页面 --><view class="component-page"><index v-if="active == 0"></index><my v-if="active == 1"></my></view><!-- tabbar --><view class="van-tabbar-bottom"><van-tabbar :active="active" @change="onChange" :border="true" active-color="#898dda" inactive-color="#9c9c9c"><van-tabbar-item icon="chat-o">首页</van-tabbar-item><van-tabbar-item icon="contact">我的</van-tabbar-item></van-tabbar></view></view></template><script>import index from '@/components/index/index.vue'import my from '@/components/my/my.vue'export default {name: "tabbar",data() {return {active: 0}},components:{index,my},methods: {onChange(index) {console.log(index.detail)this.active = index.detail},}}
</script><style></style>

在这里插入图片描述

  • index.vue组件
<template><view>我是index</view>
</template><script>export default {name:"index",data() {return {};}}
</script><style></style>

在这里插入图片描述

  • my.vue组件
<template><view>我是my</view>
</template><script>export default {name:"my",data() {return {};}}
</script><style></style>

在这里插入图片描述

  • 完美解决闪烁问题

在这里插入图片描述

值得注意的一点时,如果这样子修改,可能会造成生命周期的改变,所以写的时候需要多注意一下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/801885.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

打印月历 Open Judge

题面链接: http://noi.openjudge.cn/ch0113/24/ 题目描述: 评析: 大模拟题&#xff0c;考察的是你的耐心和毅力&#xff01;很不错的模拟题练习题&#xff0c;小白(like me)可以练一练 思路: 先一个月一个月的模拟&#xff0c;求出来题目问的这个一年的这一个月的第一天是星期…

欧盟网络安全局:公共数据空间中的个人数据保护设计(上)

文章目录 前言一、背景:欧盟数据空间(一)欧盟数据空间的设计原则二、欧盟数据空间中数据保护的注意事项(一)欧盟数据空间关键术语(二)数据共享环境中输入隐私和输出隐私问题(三)数据保护工程的作用(四)数据空间中的数据保护影响评估(五)问责制的主要内容(六)通过…

Day30 回溯 LeedCode 332.重新安排行程 51. N皇后 37. 解数独 蓝桥杯 与或异或

332. 重新安排行程 给你一份航线列表 tickets &#xff0c;其中 tickets[i] [fromi, toi] 表示飞机出发和降落的机场地点。请你对该行程进行重新规划排序。 所有这些机票都属于一个从 JFK&#xff08;肯尼迪国际机场&#xff09;出发的先生&#xff0c;所以该行程必须从 JFK…

Macos 部署自己的privateGpt(2024-0404)

Private Chatgpt 安装指引 https://docs.privategpt.dev/installation/getting-started/installation#base-requirements-to-run-privategpt 下载源码 git clone https://github.com/imartinez/privateGPT cd privateGPT安装软件 安装&#xff1a; Homebrew /bin/bash -c…

径流场水土流失自动监测系统的使用

TH-LS1随着环保意识的日益增强&#xff0c;水土流失问题已经成为全球关注的焦点。水土流失不仅破坏了生态环境&#xff0c;还对农业生产、水资源保护等方面产生了严重影响。为了有效监测和控制水土流失&#xff0c;径流场水土流失自动监测系统应运而生。 一、径流场水土流失自…

希尔排序解读

在算法世界中&#xff0c;排序算法是至关重要的一部分。而希尔排序&#xff08;Shell Sort&#xff09;作为一种基于插入排序的改进算法&#xff0c;通过允许交换非相邻元素&#xff0c;从而在一定程度上提高了排序效率。本文将深入探讨希尔排序的原理、实现方式以及它的性能特…

stable diffusion的从安装到使用

stable-diffusion&#xff0c;一个免费开源的文生图软件&#xff0c;文章主要讲怎么从源码开始安装&#xff0c;以及使用的方式 git地址&#xff1a;https://github.com/AUTOMATIC1111/stable-diffusion-webui 本人电脑环境win10&#xff0c;软件pycharm&#xff0c;需要提前…

jeecg-boot 3.6使用微服务启动详细配置

1&#xff1a;运行sql文件 2&#xff1a;配置host 路径如下 127.0.0.1 jeecg-boot-redis 127.0.0.1 jeecg-boot-mysql 127.0.0.1 jeecg-boot-nacos 127.0.0.1 jeecg-boot-gateway 127.0.0.1 jeecg-boot-system 127.0.0.1 jeecg-boot-xxljob 127.0.0.1 jeecg-boot-rabbitmq 3…

LeetCode第十五题:三数之和【15/1000 python】

&#x1f464;作者介绍&#xff1a;10年大厂数据\经营分析经验&#xff0c;现任大厂数据部门负责人。 会一些的技术&#xff1a;数据分析、算法、SQL、大数据相关、python 作者专栏每日更新&#xff1a; LeetCode解锁1000题: 打怪升级之旅 LeetCode解锁1000题: 打怪升级之旅htt…

【管理咨询宝藏52】AA银行企业文化策略分析报告

本报告首发于公号“管理咨询宝藏”&#xff0c;如需阅读完整版报告内容&#xff0c;请查阅公号“管理咨询宝藏”。 【管理咨询宝藏52】AA银行企业文化策略分析报告 【格式】PPT版本&#xff0c;可编辑 【关键词】战略规划、商业分析、管理咨询 【强烈推荐】这是一套市面上非常…

npm包安装与管理:深入解析命令行工具的全方位操作指南,涵盖脚本执行与包发布流程

npm&#xff0c;全称为Node Package Manager&#xff0c;是专为JavaScript生态系统设计的软件包管理系统&#xff0c;尤其与Node.js平台紧密关联。作为Node.js的默认包管理工具&#xff0c;npm为开发者提供了便捷的方式来安装、共享、分发和管理代码模块。 npm作为JavaScript世…

Unity MySql安装部署与Unity连接 上篇

1.前言 最近项目用到MySql&#xff0c;记录一下安装部署过程。 数据量过大或者需要管理用户数据的时候用mysql的话数据结构比较清晰明了&#xff0c;便于管理。 2.安装MySql Unity版本&#xff1a;2019.4.16 MySql版本&#xff1a;8.2.0 下载地址&#xff1a;MySql 下载…

PostgreSQL入门到实战-第七弹

PostgreSQL入门到实战 PostgreSQL查询语句(四)官网地址PostgreSQL概述PostgreSQL中DISTINCT 语句介绍PostgreSQL中DISTINCT 语句实操更新计划 PostgreSQL查询语句(四) 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https:…

【测试篇】Selenium + Java环境搭建

文章目录 Selenium Java环境搭建配置系统环境变量PATH验证环境是否搭建成功常见问题&解决办法 Selenium Java环境搭建 Java版本最低要求为8&#xff0c;这里默认大家都下载好了Java。&#x1f606; 下载chrome浏览器&#xff08;点我下载&#xff09; 观察chrome版本。…

设备监控公有云

在数字化浪潮的推动下&#xff0c;越来越多的企业开始关注设备监控公有云这一重要领域。设备监控公有云通过云计算技术&#xff0c;实现对设备的远程监控、管理和维护&#xff0c;大大提高了企业的运营效率和管理水平。HiWoo Cloud平台作为领先的设备监控公有云解决方案提供商&…

【数据库】PostgreSQL源码编译安装方式与简单配置(v16.2)

PostgreSQL源码编译安装方式与简单配置&#xff08;v16.2&#xff09; 一、PostgreSQL安装基本介绍1.1 几种PostgreSQL的安装方式1.2 删除原有的PostgreSQL1.3 编译安装过程简介 二、源码编译安装方式详情2.1 下载源代码2.2 编译安装运行 configure执行 make执行 make install …

力扣207.课程表

你这个学期必须选修 numCourses 门课程&#xff0c;记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出&#xff0c;其中 prerequisites[i] [ai, bi] &#xff0c;表示如果要学习课程 ai 则 必须 先学习课程 bi 。 例如…

SSM党员管理系统

一、系统介绍 党员管理系统: 可以方便管理人员对党员管理系统的管理&#xff0c;提高信息管理工作效率及查询效率&#xff0c;有利于更好的为用户提供服务。 主要的模块包括&#xff1a; 1、后台功能&#xff1a; 管理员角色&#xff1a;首页、个人中心&#xff0c;党员管理…

【java面试题-Redis篇-2024】

##java面试题大全 详细面试题-持续更新中-点击跳转 点赞、收藏、加关注 java基础面试题 ##java面试题大全1、什么是 Redis2、Redis 的数据结构类型3、Redis 为什么快4、什么是跳跃表5、什么是 I/O 多路复用6、什么是缓存击穿、缓存穿透、缓存雪崩7、什么是布隆过滤器8、热…

经典文章:卷积神经网络的运作原理

https://brohrer.mcknote.com/zh-Hans/how_machine_learning_works/how_convolutional_neural_networks_work.html 参考资料 https://aitechtogether.com/article/38900.html https://www.ruanyifeng.com/blog/2017/07/neural-network.html http://neuralnetworksanddeeplea…