vue封装TabBar组件的完整步骤记录
实现思路:
步骤一:TabBar和TabBarItem的组件封装
做到这,可以发现页面的基本布局已经实现了,但是item的点击活跃状态还没实现
步骤二:给TabBarItem传入active图片
为了防止替换的内容直接整个替换掉插槽,从而插槽上定义的样式等也被替换影响,最好在插槽外定义一个div包裹
步骤三:TabBarItem和路由的结合效果
步骤四:TabBarItem的颜色控制
基本完成,但是发现路由中点击路径重复会报错
报错原因:
是因为 vue-router ≥3.0 的版本回调格式改为promise,若没有捕获到错误,控制台会出现此类报错警告。
解决方法1:vue-router降级到3.0的版本
npm i vue-router@3.0 -S
解决方法二:
对Router原型链上的push、replace方法进行重写,这样就不用每次调用方法都要加上catch。
在main.js里面写入下面内容:
import Router from 'vue-router' const originalPush = Router.prototype.push Router.prototype.push = function push(location, onResolve, onReject) { if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject) return originalPush.call(this, location).catch(err => err) }
如果修改了push还是没有生效,那么可以尝试replace方法,例如:
const originalReplace = Router.prototype.replace; Router.prototype.replace = function replace(location) { return originalReplace.call(this, location).catch(err => err); };
用字体图标实现
引入字体图标
运用
总结
到此这篇关于vue封装TabBar组件的文章就介绍到这了,更多相关vue封装TabBar组件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit(
这篇文章主要介绍了vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效的解决方法,这里需要主要项目中用的element-ui是V1.4.3,感兴趣的朋友参考下吧2018-08-08vue项目前端微信JSAPI与外部H5支付相关实现过程及常见问题
这篇文章主要介绍了vue项目前端微信JSAPI与外部H5支付相关实现过程及常见问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-04-04解决vue 使用setTimeout,离开当前路由setTimeout未销毁的问题
这篇文章主要介绍了解决vue 使用setTimeout,离开当前路由setTimeout未销毁的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-07-07Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
这篇文章主要介绍了Vue中Table组件行内右键菜单实现方法,该项目是基于 vue + AntDesign的,具体实例代码给大家介绍的非常详细 ,需要的朋友可以参考下2019-11-11
最新评论