# `bricks.Button` 技术文档 > 继承自:`bricks.Layout` `bricks.Button` 是一个可交互的按钮组件,支持图标、文本标签、自定义样式以及点击事件处理。它基于 Flexbox 布局进行内容排列,适用于水平或垂直方向的内容展示。 --- ## 目录 - [概述](#概述) - [配置选项(Options)](#配置选项options) - [结构与布局](#结构与布局) - [方法说明](#方法说明) - [`constructor(opts)`](#constructoro) - [`create()`](#create) - [`opts_setup()`](#opts_setup) - [`target_clicked(event)`](#target_clickedevent) - [事件机制](#事件机制) - [注册信息](#注册信息) --- ## 概述 `bricks.Button` 提供了一个封装良好的按钮控件,可用于触发操作或导航。该组件可以包含: - 图标(通过 `bricks.Icon`) - 文本标签(通过 `bricks.Text`) - 自定义 CSS 样式 - 工具提示(tooltip) - 可配置的布局方向(横向/纵向) 所有子元素使用 Flexbox 排列,并可通过 `item_rate` 控制尺寸比例。 --- ## 配置选项(Options) | 属性名 | 类型 | 描述 | |----------------|----------|------| | `orientation` | String | 布局方向,可选 `'horizontal'` 或默认为垂直 `'vertical'`。影响内部图标的排列方式。 | | `height` | CSS value | 容器高度,默认 `100%`(由父级控制)。 | | `width` | CSS value | 容器宽度,默认 `100%`。 | | `item_rate` | Number | 子元素(图标/文字)的缩放比率,默认为 `1`。用于调整大小。 | | `tooltip` | String | 鼠标悬停时显示的提示文本,设置到 DOM 的 `title` 属性上。 | | `color` | String | 文字颜色(传递给 `Text` 组件)。 | | `bgcolor` | String | 背景颜色(传递给 `Text` 组件)。 | | `nonepack` | Boolean | 是否移除内边距和边框;若为 `true`,则 padding 设为 `0px`,border 为 `0`。 | | `name` | String | 组件名称,用作 DOM 元素 ID 的基础。 | | `icon` | String | 图标资源 URL 或路径,用于创建 `bricks.Icon` 实例。 | | `label` | String | 显示的文字标签,支持国际化(i18n)。 | | `css` | Object | 自定义 CSS 样式对象,将被合并到 DOM 元素的 `style` 中。 | | `action` | Object | 点击按钮后执行的动作配置,详见下表。 | ### `action` 对象结构 | 子属性 | 类型 | 描述 | |----------------|----------|------| | `target` | String | 目标组件或模块名称。 | | `datawidget` | String | 数据源控件名。 | | `datamethod` | String | 数据获取方法名。 | | `datascript` | String | 自定义脚本逻辑(如函数体字符串)。 | | `dataparams` | Object | 发送至数据接口的参数。 | | `rtdata` | Boolean | 是否实时刷新数据。 | | `actiontype` | String | 动作类型,例如 `"navigate"`、`"submit"` 等。 | | `...` | Any | 其他扩展字段,根据业务需求定义。 | --- ## 结构与布局 - 使用 `