跳到内容
Tauri

event

事件系统允许您向后端发送事件并监听来自后端事件。

tauri.conf.json 中的 app.withGlobalTauri 设置为 true 时,此包也可以通过 window.__TAURI__.event 访问。

1.1.0

DRAG_DROP: "tauri://drag-drop";

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L71

DRAG_ENTER: "tauri://drag-enter";

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L69

DRAG_LEAVE: "tauri://drag-leave";

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L72

DRAG_OVER: "tauri://drag-over";

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L70

WEBVIEW_CREATED: "tauri://webview-created";

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L68

WINDOW_BLUR: "tauri://blur";

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L64

WINDOW_CLOSE_REQUESTED: "tauri://close-requested";

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L61

WINDOW_CREATED: "tauri://window-created";

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L67

WINDOW_DESTROYED: "tauri://destroyed";

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L62

WINDOW_FOCUS: "tauri://focus";

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L63

WINDOW_MOVED: "tauri://move";

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L60

WINDOW_RESIZED: "tauri://resize";

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L59

WINDOW_SCALE_FACTOR_CHANGED: "tauri://scale-change";

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L65

WINDOW_THEME_CHANGED: "tauri://theme-changed";

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L66

类型参数
T
属性类型描述定义于
eventEventName事件名称来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L32
id数字用于取消监听的事件标识符来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L34
payloadT事件载荷来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L36

属性类型描述定义于
target?string | EventTarget监听事件的目标,默认为 { kind: 'Any' },参见 EventTarget。如果提供了字符串,则使用 EventTarget.AnyLabel。来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L52

type EventCallback<T>: (event) => void;
类型参数
T
参数类型
eventEvent<T>

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L39


type EventName: `${TauriEvent}` | string & Record<never, never>;

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L44


type EventTarget:
| object
| object
| object
| object
| object
| object;

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L22


type UnlistenFn: () => void;

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L42

function emit<T>(event, payload?): Promise<void>

向所有 目标 发出事件。

类型参数
T
参数类型描述
event字符串事件名称。必须只包含字母数字字符、-/:_
载荷 (payload)?T事件载荷。

Promise<void>

import { emit } from '@tauri-apps/api/event';
await emit('frontend-loaded', { loggedIn: true, token: 'authToken' });

1.0.0

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L186


function emitTo<T>(
target,
event,
payload?): Promise<void>

向所有与给定目标匹配的 目标 发出事件。

类型参数
T
参数类型描述
目标string | EventTarget目标窗口/WebView/WebviewWindow 的标签,或原始 EventTarget 对象。
event字符串事件名称。必须只包含字母数字字符、-/:_
载荷 (payload)?T事件载荷。

Promise<void>

import { emitTo } from '@tauri-apps/api/event';
await emitTo('main', 'frontend-loaded', { loggedIn: true, token: 'authToken' });

2.0.0

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L208


function listen<T>(
event,
handler,
options?): Promise<UnlistenFn>

监听发给任何 目标 的事件。

类型参数
T
参数类型描述
eventEventName事件名称。必须只包含字母数字字符、-/:_
处理程序EventCallback<T>事件处理回调。
选项?选项事件监听选项。

Promise<UnlistenFn>

一个解析为取消监听事件函数的 Promise。请注意,如果您的监听器超出范围(例如组件已卸载),则必须删除该监听器。

import { listen } from '@tauri-apps/api/event';
const unlisten = await listen<string>('error', (event) => {
console.log(`Got error, payload: ${event.payload}`);
});
// you need to call unlisten if your handler goes out of scope e.g. the component is unmounted
unlisten();

1.0.0

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L113


function once<T>(
event,
handler,
options?): Promise<UnlistenFn>

对任何 目标 发出的事件只监听一次。

类型参数
T
参数类型描述
eventEventName事件名称。必须只包含字母数字字符、-/:_
处理程序EventCallback<T>事件处理回调。
选项?选项事件监听选项。

Promise<UnlistenFn>

一个解析为取消监听事件函数的 Promise。请注意,如果您的监听器超出范围(例如组件已卸载),则必须删除该监听器。

import { once } from '@tauri-apps/api/event';
interface LoadedPayload {
loggedIn: boolean,
token: string
}
const unlisten = await once<LoadedPayload>('loaded', (event) => {
console.log(`App is loaded, loggedIn: ${event.payload.loggedIn}, token: ${event.payload.token}`);
});
// you need to call unlisten if your handler goes out of scope e.g. the component is unmounted
unlisten();

1.0.0

来源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L157


© 2025 Tauri 贡献者。CC-BY / MIT