0Pricing
Vue Academy · Lekcja

Funkcja setup() i zmienne reaktywne

Punkt wejścia setup(), ref() dla wartości prostych, reactive() dla obiektów, zwracanie wartości.

Funkcja setup() i zmienne reaktywne to bezpłatna lekcja Vue Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Vue Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Vue Academy zawiera 4 lekcji w sumie.

Punkt wejścia setup()

Composition API działa wewnątrz specjalnej opcji komponentu o nazwie setup(). Funkcja ta jest wykonywana raz, przed utworzeniem komponentu, i służy do deklarowania stanu reaktywnego oraz funkcji.

Wszystko, co zostanie zwrócone z setup(), staje się dostępne w szablonie.

Tworzenie stanu reaktywnego za pomocą ref

ref() opakowuje pojedynczą wartość (liczbę, ciąg znaków, wartość logiczną, a nawet obiekt) w reaktywny kontener. Rzeczywista wartość znajduje się we właściwości .value.

import { ref } from 'vue'

export default {
  setup() {
    const count = ref(0)
    console.log(count.value) // 0
    return { count }
  }
}

Tworzenie reaktywnych obiektów za pomocą reactive

reactive() przyjmuje zwykły obiekt i zwraca głęboko reaktywne proxy. Do jego właściwości uzyskuje się dostęp bezpośrednio — nie ma tu .value.

import { reactive } from 'vue'

export default {
  setup() {
    const user = reactive({ name: 'Alice', age: 30 })
    console.log(user.name) // Alice
    return { user }
  }
}

Zwracanie stanu do szablonu

Wszystko, co zostanie zwrócone z setup() jako obiekt, staje się powiązaniem w szablonie. W tym przypadku udostępnione są zarówno count, jak i user.

export default {
  setup() {
    const count = ref(0)
    const user = reactive({ name: 'Alice' })
    return { count, user }
  }
}

Automatyczne rozpakowywanie w szablonie

W JavaScript zapisano count.value. W szablonie wystarczy napisać count. Vue automatycznie rozpakowuje refy znajdujące się na najwyższym poziomie, więc w szablonie nigdy nie trzeba wpisywać .value.

<!-- template -->
<p>Count: {{ count }}</p>
<p>Name: {{ user.name }}</p>

Dodawanie funkcji

Funkcje zdefiniowane w setup() mogą odczytywać i zmieniać stan reaktywny. Należy pamiętać, że wewnątrz JavaScriptu w przypadku refów nadal używa się .value.

import { ref } from 'vue'

export default {
  setup() {
    const count = ref(0)
    function increment() { count.value++ }
    return { count, increment }
  }
}

Podłączanie do szablonu

Należy zwrócić funkcję i powiązać ją ze zdarzeniem. Kliknięcie przycisku wywołuje increment, który modyfikuje ref, a Vue ponownie renderuje widok.

<!-- template -->
<button @click="increment">Count is {{ count }}</button>

Bez słowa kluczowego this

Wewnątrz setup() nie ma this. Pracuje się bezpośrednio ze zadeklarowanymi zmiennymi. Dzięki temu kod łatwiej analizować, a jego typowanie w TypeScript jest prostsze.

Użycie this w setup() nie zapewni dostępu do instancji komponentu.

setup wykonuje się przed utworzeniem komponentu

setup() wykonuje się bardzo wcześnie — przed created i zanim instancja komponentu zostanie w pełni skonfigurowana. Dlatego this jest niedostępne i nie można jeszcze uzyskać dostępu do DOM-u.

Argumenty setup(): props i context

setup(props, context) otrzymuje rozwiązane właściwości jako pierwszy argument oraz obiekt kontekstu jako drugi. Kontekst udostępnia attrs, slots, emit i expose.

export default {
  props: { title: String },
  setup(props, context) {
    console.log(props.title)
    context.emit('ready')
  }
}

Kompletny mały komponent

Oto wszystkie elementy razem: ref, obiekt reaktywny, funkcja oraz zwracane powiązania.

import { ref, reactive } from 'vue'

export default {
  setup() {
    const count = ref(0)
    const user = reactive({ name: 'Alice' })
    function increment() { count.value++ }
    return { count, user, increment }
  }
}

Szybki test

Upewnij się, że rozumiesz działanie setup() i zmiennych reaktywnych.

Podsumowanie

Poznałeś podstawy Composition API:

  • setup() wykonuje się raz przed utworzeniem komponentu i zwraca powiązania szablonu.
  • ref() opakowuje wartość — w JS należy używać .value.
  • reactive() opakowuje obiekt — do właściwości uzyskuje się dostęp bezpośrednio.
  • Szablony automatycznie rozpakowują refy, więc nie trzeba w nich używać .value.
  • Wewnątrz setup() nie ma this.

Często zadawane pytania

Czy lekcja „Funkcja setup() i zmienne reaktywne” jest bezpłatna?

Tak — pełny tekst „Funkcja setup() i zmienne reaktywne” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Vue Academy, przejdź na CoddyKit PRO. Kurs Vue Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Funkcja setup() i zmienne reaktywne”?

Punkt wejścia setup(), ref() dla wartości prostych, reactive() dla obiektów, zwracanie wartości. Ćwiczysz Vue Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Vue Academy?

Nie wymagamy żadnego doświadczenia. Vue Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Funkcja setup() i zmienne reaktywne”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Vue Academy?

Tak. Każda lekcja Vue Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Dlaczego Composition API?
  2. Funkcja setup() i zmienne reaktywne
  3. ref a reactive: kiedy używać każdego z nich
  4. Computed i watch w Composition API
← Powrót do Vue Academy