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 onceMetody 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 warnSettery 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
- Podstawy reaktywności
- Właściwości computed
- Watchery i głęboka reaktywność