Component Instance
INFO
Ta strona dokumentuje wbudowane właściwości i metody wystawione na publiczną instancję komponentu, czyli this
.
Wszystkie właściwości wymienione na tej stronie są tylko do odczytu (z wyjątkiem właściwości zagnieżdżonych w $data
).
$data
Obiekt zwrócony z opcji data
, jest tworzony jako reaktywny przez komponent. Instancja komponentu pośredniczy w dostępie do właściwości swojego obiektu danych.
Typ
tsinterface ComponentPublicInstance { $data: object }
$props
Obiekt reprezentujący bieżące, rozwiązane rekwizyty komponentu.
Typ
tsinterface ComponentPublicInstance { $props: object }
Szczegóły
Tylko zadeklarowane propsy za pomocą opcji
props
zostaną uwzględnione. Instancja komponentu pośredniczy w dostępie do właściwości na swoim obiekcie props.
$el
Główny węzeł DOM, którym zarządza instancja komponentu.
Typ
tsinterface ComponentPublicInstance { $el: any }
Szczegóły
$el
będzieundefined
dopóki komponent nie zostanie zamontowany.- Dla komponentów z pojedynczym elementem głównym,
$el
będzie wskazywał na ten element. - Dla komponentów z korzeniem tekstowym,
$el
będzie wskazywał na węzeł tekstowy. - W przypadku komponentów z wieloma węzłami głównymi,
$el
będzie zastępczym węzłem DOM, którego Vue używa do śledzenia pozycji komponentu w DOM (węzeł tekstowy lub węzeł komentarza w trybie SSR hydration).
TIP
Dla zachowania spójności zaleca się używanie template refs do bezpośredniego dostępu do elementów zamiast polegania na
$el
.- Dla komponentów z pojedynczym elementem głównym,
$options
Rozwiązane opcje komponentu użyte do utworzenia instancji bieżącego komponentu.
Typ
tsinterface ComponentPublicInstance { $options: ComponentOptions }
Szczegóły
Obiekt
$options
eksponuje rozwiązane opcje dla bieżącego komponentu i jest wynikiem połączenia tych możliwych źródeł:- Globalne mixiny
- Komponent
rozszerza
bazę - Mieszanki komponentów
Jest zwykle używany do obsługi niestandardowych opcji komponentów:
jsconst app = createApp({ customOption: 'foo', created() { console.log(this.$options.customOption) // => 'foo' } })
Zobacz również
app.config.optionMergeStrategies
$parent
Instancja nadrzędna, jeśli bieżąca instancja ją posiada. Będzie to null
dla samej głównej instancji.
Typ
tsinterface ComponentPublicInstance { $parent: ComponentPublicInstance | null }
$root
Główna instancja komponentu bieżącego drzewa komponentów. Jeśli bieżąca instancja nie ma rodziców, wartością tą będzie ona sama.
Typ
tsinterface ComponentPublicInstance { $root: ComponentPublicInstance }
$slots
Obiekt reprezentujący sloty przekazane przez komponent nadrzędny.
Typ
tsinterface ComponentPublicInstance { $slots: { [name: string]: Slot } } type Slot = (...args: any[]) => VNode[]
Szczegóły
Zwykle używane podczas ręcznego tworzenia funkcji renderowania, ale może być również używane do wykrywania obecności slotu.
Każdy slot jest udostępniany w
this.$slots
jako funkcja, która zwraca tablicę vnode pod kluczem odpowiadającym nazwie tego slotu. Domyślny slot jest udostępniany jakothis.$slots.default
.Jeśli slot jest slotem o zakresie, argumenty przekazywane do funkcji slotu są dostępne dla slotu jako jego właściwości slotu.
Zobacz również Render Functions - Rendering Slots
$refs
Obiekt elementów DOM i wystąpień komponentów, zarejestrowany za pomocą odniesień do szablonów.
Typ
tsinterface ComponentPublicInstance { $refs: { [name: string]: Element | ComponentPublicInstance | null } }
Zobacz również
$attrs
Obiekt zawierający atrybuty przejścia komponentu.
Type
tsinterface ComponentPublicInstance { $attrs: object }
Szczegóły
Fallthrough Attributes to atrybuty i procedury obsługi zdarzeń przekazywane przez komponent nadrzędny, ale niezadeklarowane jako rekwizyt lub zdarzenie emitowane przez komponent podrzędny.
Domyślnie wszystko w
$attrs
zostanie automatycznie odziedziczone w elemencie głównym komponentu, jeśli istnieje tylko jeden element główny. To zachowanie jest wyłączone, jeśli komponent ma wiele węzłów głównych i można je jawnie wyłączyć za pomocą opcjiinheritAttrs
.Zobacz również
$watch()
Imperative API do tworzenia watchers.
Type
tsinterface ComponentPublicInstance { $watch( source: string | (() => any), callback: WatchCallback, options?: WatchOptions ): StopHandle } type WatchCallback<T> = ( value: T, oldValue: T, onCleanup: (cleanupFn: () => void) => void ) => void interface WatchOptions { immediate?: boolean // default: false deep?: boolean // default: false flush?: 'pre' | 'post' | 'sync' // default: 'pre' onTrack?: (event: DebuggerEvent) => void onTrigger?: (event: DebuggerEvent) => void } type StopHandle = () => void
Szczegóły
Pierwszy argument to źródło obserwowane. Może to być ciąg nazwy właściwości komponentu, prosty ciąg ścieżki rozdzielony kropkami lub funkcja gettera.
Drugi argument to funkcja wywołania zwrotnego. Wywołanie zwrotne otrzymuje nową wartość i starą wartość obserwowanego źródła.
immediate
: natychmiastowe wywołanie zwrotne po utworzeniu obserwatora. Stara wartość będzieundefined
przy pierwszym wywołaniu.deep
: wymusza głębokie przejście źródła, jeśli jest obiektem, tak aby wywołanie zwrotne było uruchamiane przy głębokich mutacjach. Zobacz Deep Watchers.flush
: dostosowanie czasu opróżniania wywołania zwrotnego. Zobacz Callback Flush Timing iwatchEffect()
.onTrack / onTrigger
: debugowanie zależności obserwatora. Zobacz Watcher Debugging.
Przykład
Obserwuje nazwę wartości:
jsthis.$watch('a', (newVal, oldVal) => {})
Obserwuje ścieżkę rozdzieloną kropkami:
jsthis.$watch('a.b', (newVal, oldVal) => {})
Użycie gettera do bardziej złożonych wyrażeń:
jsthis.$watch( // every time the expression `this.a + this.b` yields // a different result, the handler will be called. // It's as if we were watching a computed property // without defining the computed property itself. () => this.a + this.b, (newVal, oldVal) => {} )
Zatrzymanie obserwatora:
jsconst unwatch = this.$watch('a', cb) // later... unwatch()
Zobacz również
$emit()
Wywoła niestandardowe zdarzenie na bieżącej instancji. Wszelkie dodatkowe argumenty zostaną przekazane do funkcji wywołania zwrotnego słuchacza.
Typ
tsinterface ComponentPublicInstance { $emit(event: string, ...args: any[]): void }
Przykład
jsexport default { created() { // tylko wydarzenie this.$emit('foo') // z dodatkowymi argumentami this.$emit('bar', 1, 2, 3) } }
Zobacz również
$forceUpdate()
Wymusi ponowne renderowanie instancji komponentu.
Typ
tsinterface ComponentPublicInstance { $forceUpdate(): void }
Szczegóły
Powinno to być rzadko potrzebne, biorąc pod uwagę w pełni automatyczny system reaktywności Vue. Jedynymi przypadkami, w których może być potrzebne, jest jawne utworzenie niereaktywnego stanu komponentu przy użyciu zaawansowanych interfejsów API reaktywności.
$nextTick()
Wersja globalna nextTick()
powiązana z instancją.
Typ
tsinterface ComponentPublicInstance { $nextTick(callback?: (this: ComponentPublicInstance) => void): Promise<void> }
Szczegóły
Jedyną różnicą w stosunku do globalnej wersji
nextTick()
jest to, że wywołanie zwrotne przekazane dothis.$nextTick()
będzie miało swój kontekstthis
powiązany z bieżącą instancją komponentu.Zobacz również
nextTick()