因为ant Tabs组件结构较复杂,共分三部分叙述,本文为目录中第二部分(高亮)antd
目录spa
1、组件结构blog
antd代码结构事件
rc-ant代码结构源码
一、组件树状结构test
二、Context使用说明方法
三、rc-tabs中只在example、test中使用的组件说明im
2、Tabs关键组件功能实现d3
一、Tabs(antd)margin
二、RcTabs
三、Sentinel哨兵
四、InkTabBarNode
3、Tabs的滚动效果
ScrollableTabBarNode
antd中的Tabs主要控制可编辑态和Tabs额外的按钮,具体tab功能实现交给rc-Tabs,具体内容见下图
render方法源码对照
sentinel哨兵负责监听tab键盘事件,tab键focus焦点向后移动,shift+tab键焦点向前移动
先后关系以下图所示
代码
inkTabBar为当前active状态tab下的蓝色高亮条,关键逻辑在于计算高亮条的高度和偏移量,详细代码及逻辑见下图注释