event
事件系統讓您能向後端發射事件,並監聽來自後端的事件。
當 app.withGlobalTauri
在 tauri.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 |
屬性
屬性 | 類型 | 描述 | 定義於 |
---|---|---|---|
event | EventName | 事件名稱 | 來源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L24 |
id | number | 用於取消監聽的事件識別碼 | 來源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L26 |
payload | T | 事件酬載 | 來源: 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 |
參數
參數 | 類型 |
---|---|
event | Event <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>
向所有 目標 發射事件。
參數
參數 | 類型 | 描述 |
---|---|---|
event | string | 事件名稱。必須僅包含字母數字字元、- 、/ 、: 和 _ 。 |
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>
向所有符合給定目標的 目標 發射事件。
參數
參數 | 類型 | 描述 |
---|---|---|
target | string | EventTarget | 目標視窗/Webview/WebviewWindow 的標籤或原始 EventTarget 物件。 |
event | string | 事件名稱。必須僅包含字母數字字元、- 、/ 、: 和 _ 。 |
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 |
參數
參數 | 類型 | 描述 |
---|---|---|
event | EventName | 事件名稱。必須僅包含字母數字字元、- 、/ 、: 和 _ 。 |
handler | EventCallback <T > | 事件處理常式回呼。 |
options ? | 選項 | 事件監聽選項。 |
回傳值
一個 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 unmountedunlisten();
自從
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 |
參數
參數 | 類型 | 描述 |
---|---|---|
event | EventName | 事件名稱。必須僅包含字母數字字元、- 、/ 、: 和 _ 。 |
handler | EventCallback <T > | 事件處理常式回呼。 |
options ? | 選項 | 事件監聽選項。 |
回傳值
一個 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 unmountedunlisten();
自從
1.0.0
來源: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/event.ts#L147
© 2025 Tauri 貢獻者。CC-BY / MIT