微信小程序动态导航栏(uniapp + vant)


本文使用到vant的van-tabbar组件来实现


一、uniapp整合vant ui

vant小程序版本:https://vant-contrib.gitee.io/vant-weapp/#/home
注:vant并没有uniapp的版本,所以此处是引入小程序版本的ui

1. 下载vant编译后代码
https://github.com/youzan/vant-weapp/tree/dev/dist
2. 在uniapp根目录创建文件夹:wxcomponents
将vant的dist目录重命名后复制至此处,目录结构如下图

3. 全局引入van-tabbar组件
pages.json

"globalStyle": {
	"usingComponents": {
		"van-tabbar": "/wxcomponents/@vant/weapp/tabbar/index",
		"van-tabbar-item": "/wxcomponents/@vant/weapp/tabbar-item/index"
	}
}

二、自定义组件整合van-tabbar


tab-bar.vue

<template>
	
	<van-tabbar placeholder :active="state.activeVal">
		<van-tabbar-item name="index" url="/pages/index" icon="home-o" link-type="switchTab">首页</van-tabbar-item>
		<van-tabbar-item name="my" url="/pages/my" icon="manager-o" link-type="switchTab">我的</van-tabbar-item>
	</van-tabbar>

</template>

<script setup>
	
	const app = getApp();
	import { onLoad, onShow } from "@dcloudio/uni-app";
	import { reactive, getCurrentInstance } from 'vue'
	const { proxy } = getCurrentInstance();
	let state = reactive({
		activeVal: props.name | app.globalData.tabbarActive
	});
	
	const props = defineProps({ name: '' })
	
	onShow(() => {
		const activeVal = props.name; state.activeVal = activeVal;
		app.globalData.tabbarActive = activeVal;
	})

	onLoad(() => { 
		// 在此处获取当前登录用户的导航栏权限,并过滤显示哪几个
		// 本文只做示例,应动态调整上文的van-tabbar-item
	})

</script>

<style lang="scss" scoped></style>

创建全局变量标记当前选择的导航栏:App.vue

<script>
	export default {
		globalData: {
			tabbarActive: 'index'
		}
	}
</script>

三、使用自定义组件

pages/index.vue

<template>
	<!-- name:当前页对应的导航栏name -->
	<tab-bar name='index'/>
</template>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

新手上路:自动驾驶行业快速上手指南

文章目录 1.自动驾驶技术的发展1.1 工业革命驱动自动驾驶技术发展1.2 想象中的未来&#xff1a;科幻作品中的自动驾驶汽车1.3 自动驾驶技术萌芽与尝试1.4 百花争鸣&#xff1a;自动驾驶科技巨头与创业公司并进 2.个人开发者&#xff0c;如何玩转自动驾驶&#xff1f;2.1 灵活易…

开源 AI 研发提效方案 Unit Mesh 总结

回顾 2023 年&#xff0c;可以明显地看到生成式 AI 带给软件工程带来的新思考&#xff0c;每个组织也在探索结合生成式 AI 的可能性。Unit Mesh (https://github.com/unit-mesh) GitHub 组织正是基于我与我的同事的研究&#xff0c;所构建的一系列围绕于生成式 AI 应用于软件研…

基于ssm国外摇滚乐队交流和周边售卖系统论文

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对国外摇滚乐队交流和周边售卖信息管理混乱&#xff0c;出错率高&…

CUMT-Java复习--抽象类和接口

目录 一、抽象类 1、定义抽象类 2、实现一个抽象类 二、接口 1、定义接口 2、实现接口 3、接口继承 4、接口和抽象类的相似之处 5、接口和抽象类的区别 三、instanceof关键字 一、抽象类 1、定义抽象类 抽象类是对于一类相同的具体概念的抽象。 抽象类和抽象方法都…

密码强度的提升与网络安全意识

随着互联网的快速发展&#xff0c;网络安全问题日益突出&#xff0c;其中密码安全作为网络世界的第一道防线&#xff0c;其重要性不言而喻。本文将从密码强度的提升和网络安全意识普及两个方面&#xff0c;探讨如何在日益复杂的网络环境中保障个人信息安全。 随机密码生成器 |…

【2023 英特尔On技术创新大会直播 |我与英特尔的初次相遇】—— AIPC探索下一代的物联网时代

&#x1f308;个人主页: Aileen_0v0 &#x1f525;系列专栏:英特尔技术学习专栏 &#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 目录 硅谷经济的发展与挑战 Intel开发者云与AI技术的应用 AI压缩技术的发展与应用 英特尔与阿里巴巴在AI领域的合作 AIPC时代的…

RocketMQ系统性学习-RocketMQ原理分析之消息的可靠性以及有序性如何保证

文章目录 消息的可靠性如何保证&#xff1f;消息的有序性如何保证&#xff1f; 消息的可靠性如何保证&#xff1f; 要保证消息的可靠性&#xff0c;先来思考一下从哪些方面保证呢&#xff1f; 这要看消息的生命周期&#xff0c;既然保证可靠性&#xff0c;那么就是要保证 A 发…

理解并在虚拟化策略中实施 QEMU

● QEMU 是一种流行的开源机器模拟器。 ● QEMU 支持硬件虚拟化扩展&#xff08;Intel VT-x 和 AMD-V&#xff09;。 ● QEMUCare 为基于 QEMU 的虚拟化系统提供实时修补解决方案。 虚拟化现已成为现代 IT 基础设施的支柱&#xff0c;使组织能够实现前所未有的灵活性、可扩展…

pycharm运行正常,但命令行执行提示module不存在的多种解决方式

问题描述 在执行某个测试模块时出现提示&#xff0c;显示自定义模块data不存在&#xff0c;但是在PyCharm下运行正常。错误信息如下&#xff1a; Traceback (most recent call last):File "/run/channelnterface-autocase/testcases/test_chanel_detail.py", line 2…

直播种类之VR全景直播

VR全景直播是一种结合虚拟现实技术和直播的全新体验。通过全景相机拍摄&#xff0c;观众可以身临其境地感受直播现场的氛围和真实感&#xff0c;提供逼真的观看体验。 VR全景直播的优势在于: 1.身临其境的观看体验:观众可以像真的在现场一样&#xff0c;通过虚拟现实设备探索…

基于python的leetcode算法介绍之递归

文章目录 零 算法介绍一 简单示例 辗转相除法Leetcode例题与思路[509. 斐波那契数](https://leetcode.cn/problems/fibonacci-number/)解题思路&#xff1a;题解&#xff1a; [206. 反转链表](https://leetcode.cn/problems/reverse-linked-list/)解题思路&#xff1a;题解&…

OpenHarmony开发环境快速搭建(无需命令行)

一. 搭建Windows环境 在嵌入式开发中&#xff0c;很多开发者习惯于使用Windows进行代码的编辑&#xff0c;比如使用Windows的Visual Studio Code进行OpenHarmony代码的开发。但当前阶段&#xff0c;大部分的开发板源码还不支持在Windows环境下进行编译&#xff0c;如Hi3861、H…

数字助听器如何处理声音?

数字助听器如何处理声音&#xff1f; 助听器的作用不仅仅是放大声音。为了创建可改进语音识别的自定义声音配置文件&#xff0c;他们以多种方式处理声音。 麦克风 与人耳一样&#xff0c;数字助听器不直接处理声波。首先是麦克风。它们充当换能器&#xff0c;捕获机械波能并将…

Verilog 仿真可视化

Verilog 仿真可视化 飞多学堂 飞多学堂 2023-12-11 09:37 Posted on 山东 DigitalJS 是一个基于 JavaScript 实现的开源数字电路模拟器&#xff0c;旨在模拟由硬件设计工具&#xff08;如 Yosys&#xff09;合成的电路。由弗罗茨瓦夫大学的Marek Materzok开发&#xff0c;源文…

手机数码品牌网站建设的作用是什么

手机数码产品几乎已经成为成年人必备的&#xff0c;包括手机、电脑、摄像机、键盘配件等&#xff0c;同时市场中相关企业也非常多&#xff0c;消费者可供选择的商品类型也很多样&#xff0c;而对企业来讲&#xff0c;只有不断提升品牌形象、获客拉新等才能不断提升企业地位&…

easyexcel常见注解

easyexcel常见注解 一、依赖 <!--阿里巴巴EasyExcel依赖--><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.10</version></dependency>二、常见注解 ExcelProperty 注解中…

绝地求生什么游戏?

绝地求生是一款由蓝洞公司开发并发行的多人在线生存竞技游戏&#xff0c;也是一款备受玩家热爱和追捧的射击游戏。游戏灵感源自于日本电影《葛洛历亚号》&#xff0c;玩家将扮演一名跳伞降落在荒岛上的幸存者&#xff0c;通过收集资源、与其他玩家进行战斗来生存到最后一名&…

FastApi-快速入门FastApi框架(1)

前言 本文是该专栏的第1篇&#xff0c;后面会持续分享FastApi以及项目实战的各种干货知识&#xff0c;值得关注。 FastApi是一个现代、快速&#xff08;高性能&#xff09;的基于Python3.6的web框架&#xff0c;用于构建API。它旨在使API开发更快&#xff0c;更简单&#xff0…

Polar 这又是一个上传

Polar 这又是一个上传 开局还是一个文件上传界面 有前端后缀检查&#xff0c;这个好绕&#xff0c;抓包改后缀就行 绕过后burp可以直接传一个php上去 getshell 但是无法cat flag&#xff0c;感觉权限不够&#xff0c;需要提权。 查找具有suid权限的命令 1system(find / -use…

网络协议小记

一、TCP/IP协议 作为一个小萌新&#xff0c;当然我无法将tcp/ip协议的大部分江山和盘托出&#xff0c;但是其中很多面试可能问到的知识&#xff0c;我觉得有必要总结一下&#xff01; 首先&#xff0c;在学习tcp/ip协议之前&#xff0c;我们必须搞明白什么是tcp/ip协议。 1、…