wxc-tab
MinUI 小程序组件 - 选项卡
Install
$ min install @minui/wxc-tab
Demos
动画版
可改变颜色,默认选中超出范围
<template>
<wxc-tab
bind:tabchange="onClick"
default-index="{{4}}"
active-text-color="#108ee9"
active-line-color="#108ee9"
component-id="c1"
animate="{{true}}"
>
<wxc-tab-panel
wx:for="{{tabs}}"
wx:for-item="tab"
wx:key="{{tab.content}}"
tab-index="{{index}}"
component-id="c1"
label="{{tab.title}}"
>
{{tab.content}}
</wxc-tab-panel>
</wxc-tab>
</template>
<script>
export default {
config: {
usingComponents: {
'wxc-tab': '@minui/wxc-tab',
'wxc-tab-panel': '@minui/wxc-tab/panel'
}
},
data: {
tabs: [
{title: '选项一', content: '内容一'},
{title: '选项二', content: '内容二'},
{title: '选项三', content: '内容三'}
]
},
/** note: 在 wxp 文件或者页面文件中请去掉 methods 包装 */
methods: {
onClick: function(e) {
console.log(`ComponentId:${e.detail.componentId},you selected:${e.detail.key}`);
}
}
}
</script>
<style>
</style>
基础版本
小于等于4个tab
<template>
<wxc-tab
bind:tabchange="onClick"
default-index="{{0}}"
component-id="c4"
>
<wxc-tab-panel
wx:for="{{tabs}}"
wx:for-item="tab"
wx:key="{{tab.content}}"
tab-index="{{index}}"
component-id="c4"
label="{{tab.title}}"
>
{{tab.content}}
</wxc-tab-panel>
</wxc-tab>
</template>
<script>
export default {
config: {
usingComponents: {
'wxc-tab': '@minui/wxc-tab',
'wxc-tab-panel': '@minui/wxc-tab/panel'
}
},
data: {
tabs: [
{title: '选项一', content: '内容一'},
{title: '选项二', content: '内容二'},
{title: '选项三', content: '内容三'}
]
},
/** note: 在 wxp 文件或者页面文件中请去掉 methods 包装 */
methods: {
onClick: function(e) {
console.log(`ComponentId:${e.detail.componentId},you selected:${e.detail.key}`);
}
}
}
</script>
<style>
</style>
多个tab
可滑动,有动画
<template>
<wxc-tab
bind:tabchange="onClick"
default-index="{{2}}"
component-id="c2"
animate="{{true}}"
>
<wxc-tab-panel
wx:for="{{tabs}}"
wx:for-item="tab"
wx:key="{{tab.content}}"
tab-index="{{index}}"
component-id="c2"
label="{{tab.title}}"
>
{{tab.content}}
</wxc-tab-panel>
</wxc-tab>
</template>
<script>
export default {
config: {
usingComponents: {
'wxc-tab': '@minui/wxc-tab',
'wxc-tab-panel': '@minui/wxc-tab/panel',
'wxc-tab-label': '@minui/wxc-tab/label'
}
},
data: {
tabs: [
{title: '选项一', content: '内容一'},
{title: '选项二', content: '内容二'},
{title: '选项三', content: '内容三'},
{title: '选项四', content: '内容四'},
{title: '选项五', content: '内容五'},
{title: '选项六', content: '内容六'}
]
},
/** note: 在 wxp 文件或者页面文件中请去掉 methods 包装 */
methods: {
onClick: function(e) {
console.log(`ComponentId:${e.detail.componentId},you selected:${e.detail.key}`);
}
}
}
</script>
<style>
</style>
自定义头部
可自定义头部
<template>
<wxc-tab
bind:tabchange="onClick"
default-index="{{activeKey}}"
component-id="c3"
animate="{{true}}"
class="demo-tab"
>
<view slot="tablabel">
<wxc-tab-label
wx:for="{{tabs}}"
wx:for-item="tab"
wx:key="{{tab.title}}"
tab-index="{{index}}"
component-id="c3"
>
<view class="demo-tab__label">
<icon type="success" size="16"
color="{{ activeKey === index ? '#ff5777' : '#555' }}"
>
</icon>
<view class="demo-tab__text {{ activeKey === index ? 'demo-tab--active' : ''}}">
{{tab.title}}
</view>
</view>
</wxc-tab-label>
</view>
<wxc-tab-panel
wx:for="{{tabs}}"
wx:for-item="tab"
wx:key="{{tab.content}}"
tab-index="{{index}}"
component-id="c3"
>
{{tab.content}}
</wxc-tab-panel>
</wxc-tab>
</template>
<script>
export default {
config: {
usingComponents: {
'wxc-tab': '@minui/wxc-tab',
'wxc-tab-panel': '@minui/wxc-tab/panel',
'wxc-tab-label': '@minui/wxc-tab/label'
}
},
data: {
tabs: [
{title: '选项一', content: '内容一'},
{title: '选项二', content: '内容二'},
{title: '选项三', content: '内容三'}
],
activeKey: 0
},
/** note: 在 wxp 文件或者页面文件中请去掉 methods 包装 */
methods: {
onClick: function(e) {
console.log(`ComponentId:${e.detail.componentId},you selected:${e.detail.key}`);
const idx = e.detail.key;
this.setData({
activeKey: idx
});
}
}
}
</script>
<style lang="pcss">
@b demo-tab {
@e label {
width: 100%;
margin: 20rpx 0;
display: flex;
justify-content: center;
align-items: center;
}
@e text {
margin-left: 8rpx;
}
@m active {
color: #ff5777;
}
}
</style>
API
Tab【props】
名称 | 描述 |
---|---|
default-index | [说明]:当前激活面板的 index。[类型]:Number [默认值]:0 |
animate | [说明]:是否开启动画。[类型]:Boolean [默认值]:false |
component-id | [说明]:同时调用两个tab时,需要指定component-id。[类型]:String |
bindtabchange | [说明]:tab切换的回调函数 |
text-color | [说明]:文字颜色。[类型]:String [默认值]:#000 |
active-text-color | [说明]:选中文字颜色。[类型]:String [默认值]:#ff5777 |
line-color | [说明]:线条颜色。[类型]:String [默认值]:#ddd |
active-line-color | [说明]:选中线条颜色。[类型]:String [默认值]:#ff5777 |
full-screen | [说明]:tab 组件全屏设置。[类型]:Boolean [默认值]:false |
Tab-Panel【props】
名称 | 描述 |
---|---|
tab-index | [说明]:激活当前面板的 index。[类型]:Number [默认值]:0 |
label | [说明]:选项卡头部显示的文字。[类型]:String |
component-id | [说明]:同时调用两个tab时,需要指定component-id。[类型]:String |
Tab-Label【props】
自定义头部时,需要在外层加slot="tablabel"
名称 | 描述 |
---|---|
tab-index | [说明]:激活当前面板的 index。[类型]:Number [默认值]:0 |
component-id | [说明]:同时调用两个tab时,需要指定component-id。[类型]:String |
Link
地址 | |
---|---|
tab 组件文档 https://meili.github.io/min/docs/minui/index.html#tab | |
tab 组件源码 https://github.com/meili/minui/tree/master/packages/wxc-tab | |
MinUI 组件库 https://github.com/meili/minui |
Preview
ChangeLog
v1.0.5(2018.04.27)
- panel 高度自适应
v1.0.4(2018.02.09)
- 新增 full-screen 属性
v1.0.3(2018.01.04)
- 修复点击tab时的定位问题
v1.0.2(2017.11.02)
- update .npmignore
v1.0.1(2017.10.24)
- 初始版本