0、案例效果演示:
一、TabBar实现思路
-
如果在下方有一个单独的TabBar组件,你如何封装
自定义TabBar组件,在APP中使用
让TabBar出于底部,并且设置相关的样式 -
TabBar中显示的内容由外界决定
定义插槽
flex布局平分TabBar -
自定义TabBarItem,可以传入 图片和文字
定义TabBarItem,并且定义两个插槽:图片、文字。
给两个插槽外层包装div,用于设置样式。
填充插槽,实现底部TabBar的效果
-
传入 高亮图片
定义另外一个插槽,插入active-icon的数据
定义一个变量isActive,通过v-show来决定是否显示对应的icon -
TabBarItem绑定路由数据
安装路由:npm install vue-router —save
完成router/index.js的内容,以及创建对应的组件
main.js中注册router
APP中加入<router-view>
组件 -
点击item跳转到对应路由,并且动态决定isActive
监听item的点击,通过this.$router.replace()
替换路由路径
通过this.$route.path.indexOf(this.link) !== -1
来判断是否是active -
动态计算active样式
封装新的计算属性:this.isActive ? {‘color’: ‘red’} : {}
目录结构:
完整代码如下: