0Pricing
Vue Academy · Lekcja

Właściwości computed

Wyprowadzą Państwo buforowane wartości reaktywne za pomocą właściwości computed.

Właściwości computed to bezpłatna lekcja Vue Academy na CoddyKit. To lekcja 2 z 3. 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 3 lekcji w sumie.

Czym jest właściwość obliczana?

Właściwość obliczana wyprowadza wartość na podstawie innych danych reaktywnych.

  • Jest przeliczana tylko wtedy, gdy zmienią się jej zależności
  • W szablonach zachowuje się jak zwykła właściwość
  • Utrzymuje szablony w czystości, przenosząc logikę do JS

Definiowanie computed

W Composition API należy użyć funkcji computed.

import { ref, computed } from "vue"

const firstName = ref("Ada")
const lastName = ref("Lovelace")

const fullName = computed(() => {
  return firstName.value + " " + lastName.value
})

Używanie computed w szablonie

Do computed uzyskuje się dostęp jak do właściwości danych, bez nawiasów.

<template>
  <p>{{ fullName }}</p>
</template>

<!-- fullName updates automatically when
     firstName or lastName change -->

computed a metody

Metoda również zwraca wartość, więc dlaczego używać computed?

  • computed jest buforowane na podstawie zależności
  • Metoda uruchamia się przy każdym wywołaniu podczas renderowania

Computed jest wydajniejsze w przypadku wartości pochodnych używanych wielokrotnie.

Buforowanie w praktyce

Computed uruchamia się ponownie tylko wtedy, gdy zmieni się zależność. Jeśli odczytają je Państwo wiele razy, zostanie użyty wynik z pamięci podręcznej.

const expensive = computed(() => {
  console.log("computing...")
  return heavyCalculation(data.value)
})

// Reading expensive twice in one render
// logs "computing..." only once

Metody uruchamiają się za każdym razem

Dla porównania metoda oblicza wynik ponownie przy każdym wywołaniu, nawet jeśli dane wejściowe się nie zmieniły.

// In template: {{ getTotal() }} {{ getTotal() }}
// Calls getTotal twice, recomputing both times

methods: {
  getTotal() {
    return this.price * this.qty
  }
}

computed w Options API

Options API deklaruje właściwości computed w bloku computed.

export default {
  data() {
    return { price: 10, qty: 3 }
  },
  computed: {
    total() {
      return this.price * this.qty
    }
  }
}

Gettery computed

Domyślnie computed jest tylko do odczytu: ma tylko getter.

Getter uruchamia się, aby wygenerować wartość za każdym razem, gdy zmienią się zależności.

const doubled = computed(() => count.value * 2)

// You can read doubled.value
// but assigning to it would warn

Settery computed

Można sprawić, że computed będzie zapisywalne, przekazując zarówno funkcję get, jak i set.

const fullName = computed({
  get() {
    return first.value + " " + last.value
  },
  set(newValue) {
    const parts = newValue.split(" ")
    first.value = parts[0]
    last.value = parts[1]
  }
})

Używanie settera

Przy przypisaniu wartości do computed obsługującego zapis uruchamia się jego setter.

fullName.value = "Grace Hopper"

// The setter splits and assigns:
// first.value -> "Grace"
// last.value  -> "Hopper"

Kiedy używać computed

Warto użyć computed, gdy potrzebna jest wartość wyprowadzona ze stanu reaktywnego.

  • Filtrowanie lub sortowanie listy
  • Formatowanie danych do wyświetlenia
  • Łączenie kilku wartości w jedną

Watcherów (w następnej lekcji) należy używać wtedy, gdy zamiast tego trzeba reagować za pomocą efektów ubocznych.

Szybki test

Proszę sprawdzić swoją znajomość właściwości obliczanych.

Podsumowanie: właściwości obliczane

W tym rozdziale poznali Państwo stan pochodny:

  • computed wyprowadza wartości z danych reaktywnych
  • Wynik jest buforowany i obliczany ponownie tylko wtedy, gdy zmienią się zależności
  • Metody uruchamiają się przy każdym wywołaniu, a computed nie
  • Computed może mieć getter i opcjonalny setter

Następnie: watchery i głęboka reaktywność.

Często zadawane pytania

Czy lekcja „Właściwości computed” jest bezpłatna?

Tak — pełny tekst „Właściwości computed” 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 3 lekcji w sumie.

Co nauczysz się w „Właściwości computed”?

Wyprowadzą Państwo buforowane wartości reaktywne za pomocą właściwości computed. Ć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 3.

Ile czasu zajmuje lekcja „Właściwości computed”?

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. Podstawy reaktywności
  2. Właściwości computed
  3. Watchery i głęboka reaktywność
← Powrót do Vue Academy