跳到內容
Tauri

event

事件系統讓您能向後端發射事件,並監聽來自後端的事件。

app.withGlobalTauritauri.conf.json 中設定為 true 時,此套件也能透過 window.__TAURI__.event 存取。

列舉

TauriEvent

自從

1.1.0

列舉成員

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

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

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

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

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

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

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

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

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

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

WINDOW_BLUR
WINDOW_BLUR: "tauri://blur";

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

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

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

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

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

WINDOW_DESTROYED
WINDOW_DESTROYED: "tauri://destroyed";

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

WINDOW_FOCUS
WINDOW_FOCUS: "tauri://focus";

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

WINDOW_MOVED
WINDOW_MOVED: "tauri://move";

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

WINDOW_RESIZED
WINDOW_RESIZED: "tauri://resize";

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

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

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

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

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

介面

Event<T>

類型參數

類型參數
T

屬性

屬性類型描述定義於
eventEventName事件名稱來源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L24
idnumber用於取消監聽的事件識別碼來源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L26
payloadT事件酬載來源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L28

選項

屬性

屬性類型描述定義於
target?string | EventTarget要監聽的事件目標,預設為 { kind: 'Any' },請參閱 EventTarget。如果提供字串,則會使用 EventTarget.AnyLabel。來源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L43

類型別名

EventCallback()<T>

type EventCallback<T>: (event) => void;

類型參數

類型參數
T

參數

參數類型
eventEvent<T>

回傳值

void

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


EventName

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

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


EventTarget

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

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


UnlistenFn()

type UnlistenFn: () => void;

回傳值

void

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

函式

emit()

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

向所有 目標 發射事件。

參數

參數類型描述
eventstring事件名稱。必須僅包含字母數字字元、-/:_
payload?unknown事件酬載。

回傳值

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#L177


emitTo()

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

向所有符合給定目標的 目標 發射事件。

參數

參數類型描述
targetstring | EventTarget目標視窗/Webview/WebviewWindow 的標籤或原始 EventTarget 物件。
eventstring事件名稱。必須僅包含字母數字字元、-/:_
payload?unknown事件酬載。

回傳值

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#L199


listen()

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

監聽發射到任何 目標 的事件。

類型參數

類型參數
T

參數

參數類型描述
eventEventName事件名稱。必須僅包含字母數字字元、-/:_
handlerEventCallback<T>事件處理常式回呼。
options?選項事件監聽選項。

回傳值

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#L103


once()

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

一次性監聽發射到任何 目標 的事件。

類型參數

類型參數
T

參數

參數類型描述
eventEventName事件名稱。必須僅包含字母數字字元、-/:_
handlerEventCallback<T>事件處理常式回呼。
options?選項事件監聽選項。

回傳值

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#L147


© 2025 Tauri 貢獻者。CC-BY / MIT