控制器

Reactive Controller 是一個物件,透過彙整與單一功能相關的狀態、行為和生命週期掛鉤,來實現子元件程式碼的組織和重用。

匯入

詳細資訊

控制器會透過 addController() 方法新增至主機元件,或其他實作 ReactiveControllerHost 介面的物件。它們可以透過實作一或多個生命週期回呼來掛鉤其主機元件的生命週期,或透過在主機上呼叫 requestUpdate() 來啟動主機元件的更新。

方法和屬性

當主機連接到元件樹狀結構時呼叫。對於自訂元素主機,這對應於 connectedCallback() 生命周期,只有在元件連接到文件時才會呼叫。

當主機從元件樹狀結構斷開連接時呼叫。對於自訂元素主機,這對應於 disconnectedCallback() 生命周期,當主機或祖先元件從文件斷開連接時呼叫。

在用戶端主機更新期間呼叫,正好在主機呼叫其自己的更新之前。

詳細資訊

update() 中的程式碼可以依賴 DOM,因為它不會在伺服器端渲染中呼叫。

在主機更新之後呼叫,正好在主機呼叫 firstUpdated 和 updated 之前。它不會在伺服器端渲染中呼叫。

一個可以託管 Reactive Controller 並呼叫其生命週期回呼的物件。

匯入

方法和屬性

唯讀 updateComplete: Promise<boolean>

連結到 updateComplete 檢視原始碼

傳回一個 Promise,該 Promise 在主機完成更新時解析。Promise 值是一個布林值,如果元素在沒有觸發另一個更新的情況下完成更新,則該值為 true。如果在 updated() 內設定了屬性,則 Promise 結果為 false。如果 Promise 被拒絕,則在更新期間拋出異常。

addController(controller): void

連結到 addController 檢視原始碼

將控制器新增至主機,這會設定控制器的生命週期方法,以使用主機的生命週期呼叫。

參數
controller
ReactiveController

removeController(controller): void

連結到 removeController 檢視原始碼

從主機移除控制器。

參數
controller
ReactiveController

請求非同步處理的主機更新。可以透過 updateComplete 屬性等待更新。