前言
根據官方文件的說明,一般來說 Vue 元件可以用兩種不同的 API 風格來撰寫:Options API 和 Composition API。
Options API
使用 Options API 時,我們透過一個包含 data
、methods
和 mounted
等選項的物件來定義元件邏輯。選項中定義的屬性會在函式內透過 this
曝露,this
指向的是元件實例。
<script> |
Composition API
使用 Composition API 時,我們透過導入的 API 函式來定義組件邏輯。在單文件組件 (SFC) 中,Composition API 通常搭配 <script setup>
使用。setup
屬性是一個提示,它讓 Vue 執行編譯時轉換,從而減少樣板代碼。舉例來說,在 <script setup>
中宣告的導入、第一層變數和函式可直接用於模板中。
以下是相同的組件,模板保持不變,但改用 Composition API 和 <script setup>
:
<script setup> |
該選擇哪種風格?
這兩種 API 風格都能滿足常見的使用場景。它們是基於相同底層系統的不同介面。實際上,Options API 是基於 Composition API 實現的!Vue 的核心概念和知識在兩種風格中是共通的。
Options API
- 圍繞「組件實例」(如範例中的
this
)進行設計,對於來自 OOP 語言背景的使用者,這種風格通常更符合以類為基礎的思維模型。 - 初學者友好,通過選項分組的方式隱藏了響應式細節,簡化程式碼組織。
- 圍繞「組件實例」(如範例中的
Composition API
- 在函式作用域中直接宣告響應式狀態變數,並透過組合多個函式來管理複雜性。
- 更加靈活,但需要對 Vue 的響應式機制有深入理解才能有效使用。
- 適合組織和重用邏輯的更強大模式。
學習上的建議
- 新手學習:選擇對您來說更容易理解的風格。大多數核心概念在兩種風格中是共通的,您之後可以再學習另一種風格。
- 生產使用:
- 如果不使用建構工具,或計畫主要用於低複雜度場景(如漸進式增強),建議使用
Options API
。 - 如果計畫使用 Vue 構建完整應用,建議使用 Composition API + 單文件組件。
- 如果不使用建構工具,或計畫主要用於低複雜度場景(如漸進式增強),建議使用
在學習階段,我們也不需要僅限於某一種風格。可以根據適合的情境使用適合的 API 風格。