0、案例效果演示:

一、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中加入<router-view>组件

  6. 点击item跳转到对应路由,并且动态决定isActive
    监听item的点击,通过this.$router.replace()替换路由路径
    通过this.$route.path.indexOf(this.link) !== -1来判断是否是active

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

目录结构:

完整代码如下:




十一、案例:TabBar的封装相关推荐

  1. 指针||指针和数组||指针和函数||指针、数组、函数 案例描述:封装一个函数,利用冒泡排序,实现对整型数组的升序排序

    指针 指针的基本概念 指针的作用: 可以通过指针间接访问内存 内存编号是从0开始记录的,一般用十六进制数字表示 可以利用指针变量保存地址 指针变量的定义和使用 指针变量定义语法: 数据类型 * 变量名 ...

  2. Vue学习小案例--分页组件封装

    文章目录 Vue学习小案例--分页组件封装 修改成Vue(使用组件) Vue学习小案例–分页组件封装 index.html <!DOCTYPE html> <html lang=&q ...

  3. Vue(小码哥王洪元)笔记07路由案例tabbar

    1.tabbar案例01 进行了简单的布局 1.创建一个样式文件base.css body{margin:0; padding: 0;} 2.修改App.vue <template>< ...

  4. Tabbar组件封装

    TabBar实现思路 1.如果在下方有一个单独的TabBar组件,你如何封装 自定义TabBar组件,在APP中使用 让TabBar出于底部,并且设置相关的样式 2.TabBar中显示的内容由外界决定 ...

  5. canvas:心率图案例 + ES5/ES6封装该案例

    主要目的是练习:ES5中函数的封装 和 ES6中class类的封装 1.没有封装 <body><style>canvas {border: 1px skyblue solid; ...

  6. Vue2.0开发之——购物车案例-Footer组件封装-计算商品的总价格(51)

    一 概述 App.vue中计算勾选商品的总价格 定义子组件Footer中的商品总价格 将App.vue中商品的总价格传递给Footer显示 二 App.vue中计算勾选商品的总价格 2.1 商品总价格 ...

  7. 案例,使用封装实现电子宠物系统的企鹅类正确输入健康值和亲密度

    要求 保证健康值的有效性(0-100),否则取默认值60 保证亲密度的有效性(0-100),否则取默认值60 步骤一. public class Penguin {private String nam ...

  8. python-面向对象-05_面向对象封装案例 II

    面向对象封装案例 II 目标 士兵突击案例 身份运算符 封装 封装 是面向对象编程的一大特点 面向对象编程的 第一步 -- 将 属性 和 方法 封装 到一个抽象的 类 中 外界 使用 类 创建 对象, ...

  9. Python之 面向对象封装案例

    面向对象封装案例 目标 封装 小明爱跑步 存放家具 封装 封装 是面向对象编程的一大特点 面向对象编程的 第一步 -- 将 属性 和 方法 封装 到一个抽象的 类 中 外界 使用 类 创建 对象,然后 ...

最新文章

  1. 开发者说:基于 Nacos 的网关灰度路由和服务权重灰度
  2. BZOJ 2141 排队(块套树,分块,树状数组)【BZOJ修复工程】
  3. pandas 增加列
  4. 蓝牙(BLE)应用框架接口设计和应用开发——以TI CC2541为例
  5. 关于vs生成app错误提示,提醒Execution failed for task ':transformClassesWithDexForDebug'.
  6. 【原创】再见,CVT----记搓人的第一次找实习
  7. 【深度学习】NetAug(网络增强)—Dropout的反面
  8. leetcode 668. Kth Smallest Number in Multiplication Table | 668. 乘法表中第k小的数(二分查找)
  9. 互联网java常用框架_来,带你鸟瞰 Java 中4款常用的并发框架!
  10. 初识Spring Boot
  11. zbb20180613 Spring MVC实现大文件下载功能
  12. cygwin安装之后,可以复制到其他机器使用
  13. 【CAD开发】3dxml文件格式读取(Python、C++、C#)
  14. 哪个手机浏览器可以倍速_手机四款浏览器APP的比较
  15. 32位操作系统电脑上的打印机如何共享给64位操作系统的电脑想要使用_hudingyin_新浪博客
  16. STM32超低功耗入门之认识超低功耗
  17. Linux SPI 子系统(x86平台)
  18. Jackson,Gson,Fastjson 的对比
  19. 超级详细树讲解三 —— B树、B+树图解+代码
  20. Python 爬虫下一代网络请求库 httpx 和 parsel 解析库测评

热门文章

  1. Diango博客--1.Django的接客之道
  2. 成本预算的四个步骤_全网推广步骤有哪些?
  3. Python元类(type()和metaclass)
  4. JS_14 执行上下文与执行上下文栈
  5. C++异常以及错误处理
  6. 本地音频播放,使用AVFoundation.framework中的AVAudioPlayer来实现
  7. android关机分区卸载,Android关机重启流程(二)
  8. 链表(单链表、双链表、内核链表)
  9. 驱动框架1——什么是驱动框架?
  10. Linux 移除python Error: Trying to remove “yum”, which is protected