21
Vue 3 學習之旅
進階應用

setup 函數介紹

·6 分鐘閱讀·進階應用

摘要

setup 是 Vue 3 組合式 API (Composition API) 的心臟與入口點。所有響應式狀態、計算屬性、偵聽器和生命週期鉤子等邏輯,都是在這個函數內部進行組織和定義的。

定義與說明

setup 是一個在元件建立之前執行的特殊函數,它發生在 beforeCreate 和 created 這兩個傳統生命週期鉤子之前。它是組合式 API 的核心,我們在這裡集中定義元件的響應式資料和方法。setup 函數最後需要 return 一個物件,該物件中的所有屬性都會被暴露給模板(<template>)和其他選項(如 methods)使用。

注意:

在現代 Vue 3 開發中,我們更推薦使用 <script setup> 語法糖,它極大地簡化了 setup 函數的寫法,但理解 setup 的運作原理依然至關重要。

實作範例

Vue SFC
<script>
import { ref } from 'vue';

export default {
  // 這就是 setup 函數
  setup() {
    // 1. 在 setup 中定義響應式資料
    const count = ref(0);

    // 2. 在 setup 中定義方法
    function increment() {
      count.value++;
    }

    // 3. 將資料和方法 return 出去,這樣模板才能使用它們
    return {
      count,
      increment
    };
  },
  // mounted() { ... } // 其他選項依然可以使用
}
</script>

<template>
  <button @click="increment">點擊次數: {{ count }}</button>
</template>

結論

setup 函數是組合式 API 的邏輯容器。它提供了一個集中的地方來組織功能相關的程式碼,是實現邏輯複用與更優結構的基礎。雖然現在有更簡潔的 <script setup>,但其背後的概念都源自於 setup 函數。

setup 組合式 API 響應式