• Vant React

ActionBar 动作栏

介绍

用于为页面相关操作提供便捷交互。

引入

import { ActionBar } from "@taroify/commerce"

代码演示

基础用法

import { ActionBar } from "@taroify/commerce"
import { CartOutlined, ChatOutlined, ShopOutlined } from "@taroify/icons"
import { Text } from "@tarojs/components"

function BasicActionBar() {
  return (
    <ActionBar>
      <ActionBar.IconButton>
        <ChatOutlined />
        <Text>客服</Text>
      </ActionBar.IconButton>
      <ActionBar.IconButton>
        <CartOutlined />
        <Text>购物车</Text>
      </ActionBar.IconButton>
      <ActionBar.IconButton>
        <ShopOutlined />
        <Text>店铺</Text>
      </ActionBar.IconButton>
      <ActionBar.Button>立即购买</ActionBar.Button>
    </ActionBar>
  )
}

徽标提示

在 ActionBar.IconButton 组件上设置 badge 属性后,会在图标右上角展示一个小红点;设置 badge 属性后,会在图标右上角展示相应的徽标。

import { ActionBar } from "@taroify/commerce"
import { CartOutlined, ChatOutlined, ShopOutlined } from "@taroify/icons"
import { Text } from "@tarojs/components"

function ActionBarWithBadges() {
  return (
    <ActionBar>
      <ActionBar.IconButton badge>
        <ChatOutlined />
        <Text>客服</Text>
      </ActionBar.IconButton>
      <ActionBar.IconButton badge="5">
        <CartOutlined />
        <Text>购物车</Text>
      </ActionBar.IconButton>
      <ActionBar.IconButton badge="12">
        <ShopOutlined />
        <Text>店铺</Text>
      </ActionBar.IconButton>
      <ActionBar.ButtonGroup>
        <ActionBar.Button color="warning">加入购物车</ActionBar.Button>
        <ActionBar.Button color="danger">立即购买</ActionBar.Button>
      </ActionBar.ButtonGroup>
    </ActionBar>
  )
}

自定义图标颜色

通过设置图标的 color 属性可以自定义图标的颜色。

import { ActionBar } from "@taroify/commerce"
import { CartOutlined, ChatOutlined, Star } from "@taroify/icons"
import { Text } from "@tarojs/components"

function ActionBarWithCustomIconButton() {
  return (
    <ActionBar>
      <ActionBar.IconButton>
        <ChatOutlined color="#ee0a24" />
        <Text>客服</Text>
      </ActionBar.IconButton>
      <ActionBar.IconButton>
        <CartOutlined />
        <Text>购物车</Text>
      </ActionBar.IconButton>
      <ActionBar.IconButton>
        <Star color="#ff5000" />
        <Text>已收藏</Text>
      </ActionBar.IconButton>
      <ActionBar.ButtonGroup>
        <ActionBar.Button color="danger">加入购物车</ActionBar.Button>
        <ActionBar.Button color="warning">立即购买</ActionBar.Button>
      </ActionBar.ButtonGroup>
    </ActionBar>
  )
}

自定义按钮颜色

通过 ActionBar.Button 的 style 属性可以自定义按钮的颜色,支持传入 linear-gradient 渐变色。

import { ActionBar } from "@taroify/commerce"
import { CartOutlined, ChatOutlined } from "@taroify/icons"
import { Text } from "@tarojs/components"

function ActionBarWithCustomButton() {
  return (
    <ActionBar>
      <ActionBar.IconButton>
        <ChatOutlined />
        <Text>客服</Text>
      </ActionBar.IconButton>
      <ActionBar.IconButton>
        <CartOutlined />
        <Text>购物车</Text>
      </ActionBar.IconButton>
      <ActionBar.ButtonGroup>
        <ActionBar.Button style={{ background: "#be99ff" }}>加入购物车</ActionBar.Button>
        <ActionBar.Button style={{ background: "#7232dd" }}>立即购买</ActionBar.Button>
      </ActionBar.ButtonGroup>
    </ActionBar>
  )
}

API

ActionBar Props

参数说明类型默认值
fixed是否固定在底部booleanfalse
safeArea安全区域,可选值 top bottomstring-
placeholder固定在底部时,是否在标签位置生成一个等高的占位元素booleanfalse

ActionBar.ButtonGroup Props

参数说明类型默认值
flex列元素宽度number-
shape按钮形状,可选值为 squarestringround

ActionBar.Button Props

参数说明类型默认值
shape按钮形状,可选值为 squarestringround
color按钮颜色,可选值为 primary info success warningstringdanger
icon左侧图标图片ReactNode-
disabled是否禁用按钮booleanfalse
loading是否显示为加载状态boolean | LoadingPropsfalse

ActionBar.IconButton Props

参数说明类型默认值
badge徽标内容boolean | number | string | Badge-

主题定制

样式变量

组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件。

名称默认值描述
—action-bar-colorvar(—gray-6)-
—action-bar-height50px * $hd-
—action-bar-backgroundvar(—action-bar-background)-
—action-bar-button-height40px * $hd-
—action-bar-button-colorvar(—white)-
—action-bar-button-font-sizevar(—font-size-md)-
—action-bar-button-gradient-redvar(—gradient-red)-
—action-bar-button-gradient-orangevar(—gradient-orange)-
—action-bar-button-border-radius-mdvar(—border-radius-md)-
—action-bar-button-border-radius-maxvar(—border-radius-max)-
—action-bar-icon-button-colorvar(—gray-7)-
—action-bar-icon-button-font-sizevar(—font-size-xs)-
—action-bar-icon-button-width48px * $hd-
—action-bar-icon-button-height100%-
—action-bar-icon-button-icon-font-size18px * $hd-