今天有用到ly-tab,写一点注解。

ly-tab,一共就三个vue文件。主文件:index.vue,引入了2个子组件,tabbar,tabbar-item,

当自己在引入这个组件时候,比如我在Home.vue引入了ly-tab,文件结构:
         
  |   |----home.vue                          # 自己的文件
  |    |   |---index.vue                             # ly-tab的主文件
  |    |   |   |--tabbar.vue                            # ly-tab的tab列表框,
  |    |   |   | ---tabbar-item.vue                   # ly-tab的具体的item

从最小的tabbar-item.vue开始看:

每一个item都是一个a标签,且绑定了一个ly-tab-item的class。

动态绑定了一个style,通过id(这个id在tabbar-item.vue的data属性里面)(表征了我们当前点的哪个item)来判断是否添加activeStyle的css属性(其实是一个color)这个color属性来自于父组件(index.vue)的activeColor属性。

但是我们在index.vue里面是找不到这个activeColor属性的,所以说这个是我们自己,在Home.vue里面定义的,通过传值option对象。下图是index.vue里面的props,定义了来自父组件,即Home.vue的数据类型。

继续看,点击触发onItemClicked事件。

这个事件是让其父组件,发送信息给input事件,信息内容是this.id,我们来看一下这个emit,到底发给了谁,其实是发给了,home.vue。下图是我的home.vue。对比一下

当前的tabbar-item里的id===》由index.vue去emit===》给到了home.vue里的input事件,其实就是v-model,看一个v-model的原理怎么实现的就明白了,进而改变了home.vue里面的selectedId,进而对应获取不同的items.

然后就是2个插槽,一个具名插槽,一个匿名插槽。在index.vue中定义。第3点关于slot的链接

index.vue:

这2个span,就是item.vue里面预先留的slot的位置应该填入的元素。ly-tab-item这个里面由2个span,第1个就是具名插槽,擦在item.vue里的对应的slot里,如有由item.icon,就会把图标加上。而在外面tabbar.vue又包裹了一层,所以就是:

2个span==》擦到item.vue的插槽里==》带有2个span的item.vue作为整体被遍历,与在home.vue传入的items有关==》很多个item.vue又作为一个整体插入到tabbar.vue的slot里面。。。。

我觉得整体组件的业务逻辑应该就差不多了。再写一遍就是:

点击item会触发item.vue的emit,传给Home做出改变

tabber.vue

这个主要实现的是拖拽的动画效果,能力有限,怎么如此动画的我也分析不出来。。

关于vue小插件:ly-tab的解释相关推荐

  1. 实用VUE 开发插件!!前端必备

    element - 饿了么出品的Vue2的web UI工具套件 Vux - 基于Vue和WeUI的组件库 mint-ui - Vue 2的移动UI元素 iview - 基于 Vuejs 的开源 UI ...

  2. 好用的vue组件插件及框架

    实用的vue插件大汇总 Vue是一个构建数据驱动的 web 界面的渐进式框架.Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件特别整理了常用的vue插件,来了个大汇总 ...

  3. vue周边插件大全,收藏

    Vue是一个构建数据驱动的 web 界面的渐进式框架.Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件特别整理了常用的vue插件,来了个大汇总,方便查找使用,便于工作 ...

  4. vue 常用插件集合(最全)

    UI组件 element- 饿了么出品的Vue2的web UI工具套件 Vux- 基于Vue和WeUI的组件库 mint-ui- Vue 2的移动UI元素 iview- 基于 Vuejs 的开源 UI ...

  5. vue常用插件,可自定义选择。vue demo

    UI组件 element- 饿了么出品的Vue2的web UI工具套件 Vux- 基于Vue和WeUI的组件库 mint-ui- Vue 2的移动UI元素 iview- 基于 Vuejs 的开源 UI ...

  6. made with vue.jsvue 插件集合

    目录 来源与segmentfault UI 更多查看:https://madewithvuejs.com/?page=1 UI组件 开发框架 实用库 服务端 辅助工具 应用实例 Demo示例 来源与s ...

  7. (50)Vue Router插件介绍

    一.Vue Router插件介绍 Vue Router 是 Vue.js 的官方插件,用来快速实现单页应用. 二.Vue Router学习内容 • 单页应用 • 前端路由 • Vue Router 三 ...

  8. vue小程序开发(四)首页 推荐

    vue小程序开发(四)首页 推荐 编写 首页-推荐 模块 推荐-最顶部模块 推荐-月份模块 月份模块标题样式 推荐-热门模块 基本布局 使用scroll-view改造容器 分页功能分析 实现头部固定 ...

  9. vue自定义插件 封装一个类似 element 中 message 消息提示框的插件

    vue自定义插件 封装一个类似 element 中 message 消息提示框的插件 一.资源文档 1.vue内置组件 transition 2.Vue.use() 3.Vue.extend() 4. ...

最新文章

  1. 80亿亿次,南京智能计算中心有点大
  2. Java锁消除和锁粗化
  3. QUIC实战(三) letsencrypt证书申请和自动续期
  4. [css] 如何给段落的首行缩进?
  5. Spring的事务管理难点剖析(4):多线程的困惑
  6. Windows下Squid 3.5安装及配置代理服务器
  7. jsp基础代码片段(含sql与js和jsp的交互)与简易贴吧网站项目
  8. java代码绩点计算器_怎么用java写一个gpa计算器?
  9. 爬取行政区划(改版)
  10. pcie扰码的作用_扰码讲解
  11. 如何显示计算机窗口的状态栏,如何让电脑任务栏不显示打开的程序或窗口方法...
  12. qq空间留言板删除 php,怎么批量删除QQ空间的说说
  13. linux openoffice 安装字体,Linux服务器上安装openoffice,以及安装字体文件
  14. Python GUI制作实例 wxPython使用多线程 防假死含wxFormBuilder的文件及源码
  15. Android9.0源代码中替换默认静态壁纸
  16. docker查看mysql镜像版本_Docker 查看镜像信息
  17. Mybatis中大于号和小于号表示方式
  18. (OK) MIMP - 18 ( 5 nodes) - 抓包-缺少 MPTCP-JION - 发现了另一个问题【M1 ping M5】不可以 ping 通
  19. 一篇文章搞定交换机的三种端口类型
  20. MSCRM 2011 可视化Ribbon编辑工具,超级强大!

热门文章

  1. Win10的Wifi图标变成了小地球(WLAN被禁用)
  2. 微信公众号推广技巧之一
  3. 一种在程序中将十六进制转换为十进制的简单方法
  4. 猿团YTFramework UI框架正式发布 提高开发效率
  5. C# Obsolete、Contional等等一些特性的介绍
  6. VMware16调整了路径后界面全部变成了英文
  7. 装饰者(Decorator)模式
  8. selenium+requests实现自动连接校园网并验证!
  9. 华为5年自动化测试工程详细解说:unittest单元测试框架
  10. 开源版禅道的使用教程