--- name: arco-vue-trigger description: "Arco Design Vue 触发器 Trigger 组件参考。用于 Vue 3、`@arco-design/web-vue`、``、属性、事件、插槽、示例和实现细节。" user-invocable: false --- # 触发器 Trigger ## 简介 这个例子展示了触发器的最基础的使用。触发器默认是没有弹出框的样式的。以下示例均为官网添加的样式。 ## 基本用法 ```vue ``` ## API ### `` 属性 |参数名|描述|类型|默认值|版本| |---|---|---|:---:|:---| |popup-visible **(v-model)**|弹出框是否可见|`boolean`|`-`|| |default-popup-visible|弹出框默认是否可见(非受控模式)|`boolean`|`false`|| |trigger|触发方式|`'hover' \| 'click' \| 'focus' \| 'contextMenu'`|`'hover'`|| |position|弹出位置|`'top' \| 'tl' \| 'tr' \| 'bottom' \| 'bl' \| 'br' \| 'left' \| 'lt' \| 'lb' \| 'right' \| 'rt' \| 'rb'`|`'bottom'`|| |disabled|触发器是否禁用|`boolean`|`false`|| |popup-offset|弹出框的偏移量(弹出框距离触发器的偏移距离)|`number`|`0`|| |popup-translate|弹出框的移动距离|`TriggerPopupTranslate`|`-`|| |show-arrow|弹出框是否显示箭头|`boolean`|`false`|| |align-point|弹出框是否跟随鼠标|`boolean`|`false`|| |popup-hover-stay|是否在移出触发器,并移入弹出框时保持弹出框显示|`boolean`|`true`|| |blur-to-close|是否在触发器失去焦点时关闭弹出框|`boolean`|`true`|| |click-to-close|是否在点击触发器时关闭弹出框|`boolean`|`true`|| > 仅列出常用项,低频属性按需查阅官方 API。 ### `` 事件 |事件名|描述|参数|版本| |---|---|---|:---| |popup-visible-change|弹出框显示状态改变时触发|visible: `boolean`|| |show|弹出框显示后(动画结束)触发|-|2.18.0| |hide|弹出框隐藏后(动画结束)触发|-|2.18.0| ### `` 插槽 |插槽名|描述|参数| |---|:---:|---| |content|弹出框内容|-| ### 类型定义 ```ts type TriggerPopupTranslate = | [number, number] | { [key in TriggerPosition]?: [number, number] }; ``` ## 常用模式 - **多层嵌套**:弹出层可以嵌套在另一个弹出层内。 - **多个触发方式**:通过`trigger`传入数组,可以设置多个触发方式。 - **跟随鼠标显示弹出框**:设置`align-point`属性,可以使弹出层出现在鼠标位置。 - **滚动容器**:通过设置 `update-at-scroll` 监听容器的滚动。 - **显示箭头元素**:通过`show-arrow`属性,可以展示默认的箭头元素。也可以通过`arrow-class`或`arrow-style`进行定制。 - **弹窗偏移量**:通过`popup-translate`属性,可以设置弹窗在原本位置的基础上进行额外的位置调整。 ## 最佳实践 - 新代码优先使用 Vue 3、Composition API 和 `