欢迎来到代码驿站!

vue

当前位置:首页 > 网页前端 > vue

vue封装TabBar组件的完整步骤记录

时间:2022-04-21 09:45:47|栏目:vue|点击:

实现思路:

步骤一: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基础之MVVM,模板语法和数据绑定

栏    目:vue

下一篇:vue登录路由验证的实现

本文标题:vue封装TabBar组件的完整步骤记录

本文地址:http://www.codeinn.net/misctech/199812.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有