vant vue 开发手机端网页vant tabbar双击显示

在Vue移动端开发中,使用Vant的Tabbar组件时遇到初始选中状态错误及双击才能选中图标的问题。原因是Number类型数据在Localstorage中变为string,通过类型转换解决。同时,封装后的Tabbar需根据路由判断显示,避免刷新后回到初始状态,利用Localstorage保存状态并在页面加载时转换类型。另外,也可在单个页面引用时在组件内做路由判断。
摘要由CSDN通过智能技术生成

用vue开发手机端网页,用到了vant 的 tabbar组件,
因为封装了tabbar代码,导致切换的时候,tabbar上来都是active的初始选中状态,每次都是默认的零,
尝试了很多方法,最后发现最原始的把当前状态存到本地存储也是可以实现的,
我一开始用的这个方法但是没有生效,原因是什么呢,很简单
数据是Number类型,存到Loaclstorage之后再取出来变成了string
在这里插入图片描述
可以明显看到两个数据类型是不一样的,
使用强制转换之后就可以了

this.active = Number(localStorage.getItem('Active'))

另外一个遇到的坑就是,封装之后点击tabbar需要点击两次,图标才会被选中,第一次点击时会跳转页面,但是图标并不会被选中,经过实验,有两种方法可以达到目的,
首先我一开始封装components之后是在单个页面进行掉用的,
需要把他放到App.vue里面进行掉用,用监听路由的方式来判断在哪个页面需要显示哪个页面不需要
具体代码如下

 //监听器
	watch: {
		// 方法1
    '$route' (to, from) { //监听路由是否变化
		 if(to.name=='Integral'||to.name=='Class'||to.name=='S
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
如果您使用的是 Vue.js 框架,并且使用的是 vant UI 组件库中的 Dialog 对话框组件,那么您可以通过设置对话框组件的 `overlay` 属性来实现遮盖底部的 tabbar。 具体来说,您可以将 `overlay` 属性设置为 `true`,这样对话框组件就会显示一个半透明的背景遮盖住整个页面,包括底部的 tabbar。示例代码如下: ```html <van-dialog v-model="show" title="标题" :overlay="true" :lock-scroll="false" @confirm="handleConfirm" @cancel="handleCancel" > <p>对话框内容</p> </van-dialog> ``` 在上面的示例代码中,我们将 `overlay` 属性设置为 `true`,这样对话框组件就会显示一个半透明的背景遮盖住整个页面,包括底部的 tabbar。另外,我们还设置了对话框组件的标题和内容,并且监听了 `confirm` 和 `cancel` 事件,用于处理用户点击确认和取消按钮后的操作。 需要注意的是,如果您想要在对话框组件弹出时隐藏底部的 tabbar,可以在组件的 `show` 属性发生变化时,通过调用底部 tabbar 的 `hide` 方法来实现。示例代码如下: ```html <van-dialog v-model="show" title="标题" :overlay="true" :lock-scroll="false" @confirm="handleConfirm" @cancel="handleCancel" @show="handleShow" @hide="handleHide" > <p>对话框内容</p> </van-dialog> ``` ```javascript export default { data() { return { show: false } }, methods: { handleShow() { this.$refs.tabbar.hide() }, handleHide() { this.$refs.tabbar.show() }, handleConfirm() { // 处理确认按钮点击后的操作 }, handleCancel() { // 处理取消按钮点击后的操作 } } } ``` 在上面的示例代码中,我们监听了对话框组件的 `show` 和 `hide` 事件,并且在 `show` 事件中调用了底部 tabbar 的 `hide` 方法,将其隐藏起来。在 `hide` 事件中则相反,调用了底部 tabbar 的 `show` 方法,将其显示出来。这样就可以避免对话框组件遮盖底部的 tabbar 了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值