vue的学习笔记(14)之Tabbar案例

1、TabBar实现思路

(1)如果在下方有一个单独的TabBar组件,如何封装?

  • 自定义TabBar组件,在APP中使用
  • 让TabBar出于底部,并且设置相关的样式

(2)TabBar中显示的内容由外界决定

  • 定义插槽
  • flex布局平分TabBar

(3) 自定义TabBarItem,可以传入 图片和文字

  • 定义TabBarItem,并且定义两个插槽:图片、文字。
  • 给两个插槽外层包装div,用于设置样式。
  • 填充插槽,实现底部TabBar的效果

(4)传入 高亮图片

  • 定义另外一个插槽,插入active-icon的数据
  • 定义一个变量isActive,通过v-show来决定是否显示对应的icon

(5)TabBarItem绑定路由数据(若已用脚手架安装过路由,下面的手动安装路由步骤可省)

  • 安装路由:npm install vue-router —save
  • 完成router/index.js的内容,以及创建对应的组件
  • main.js中注册router
  • APP中加入组件

(6)点击item跳转到对应路由,并且动态决定isActive

  • 监听item的点击,通过this.$router.replace()替换路由路径
  • 通过this.$route.path.indexOf(this.link) !== -1来判断是否是active

(7)动态计算active样式
封装新的计算属性:this.isActive ? {‘color’: ‘red’} : {}

最终效果:
在这里插入图片描述

2、tabbar-实现流程

(1)基本的项目搭建
首先用vue init webpack tabbar创建一个项目

(2)然后在App.vue里面添加一下代码,就是加上要显示的内容和样式
在这里插入图片描述
在这里插入图片描述
得到一个模板样式:
在这里插入图片描述
(3)进一步优化
在这里插入图片描述
如果这么写的话,这段代码复用性很差,因为tabbar在很多页面会使用,因此将其抽离成一个组件。

最终的代码请看:

补充:
在这里插入图片描述
我们可以看到这一串代码的路径非常长,看起来很乱,有没有简便的写法呢?有,就是前面讲到的起别名

在这里插入图片描述
像这样子给路径起个别名,到时候只需按照你起的别名进行引用路径即可(如下图所示)。但是,在import中引用时可直接引用,但是在src里面时,因为是DOM的相关操作,所以要记得在路径前面添加~。注意:在vuecli3才可以直接在alias的其他别名的路径那使用@,vuecli2还是要自己写:

在这里插入图片描述
在这里插入图片描述
上图这是在用别名引用路径,可以通过和下面的路径进行对比,看起来舒服服多了。
在这里插入图片描述
结果还是能正常显示。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值