Options: Misc
name
Jawnie zadeklaruj wyświetlaną nazwę dla komponentu.
Typ
tsinterface ComponentOptions { name?: string }
Szczegóły
Nazwa komponentu jest używana do następujących celów:
- Rekursywne samoodniesienie we własnym szablonie komponentu
- Wyświetlanie w drzewie inspekcji komponentów Vue DevTools
- Wyświetlanie w ostrzegawczych śladach komponentów
W przypadku korzystania z komponentów jednoplikowych, komponent wywnioskuje już swoją własną nazwę z nazwy pliku. Na przykład plik o nazwie
MyComponent.vue
będzie miał wywnioskowaną nazwę wyświetlaną „MyComponent”.Innym przypadkiem jest to, że gdy komponent jest zarejestrowany globalnie z [
app.component
] (/api/application#app-component), globalny identyfikator jest automatycznie ustawiany jako jego nazwa.Opcja
name
pozwala nadpisać wywnioskowaną nazwę lub jawnie podać nazwę, gdy nie można wywnioskować żadnej nazwy (np. gdy nie są używane narzędzia kompilacji lub wbudowany komponent inny niż SFC).Istnieje jeden przypadek, w którym
name
jest wyraźnie wymagane: podczas dopasowywania do buforowanych komponentów w<KeepAlive>
poprzez jego właściwościinclude / exclude
.TIP
Od wersji 3.2.34, jednoplikowy komponent używający
<script setup>
automatycznie wywnioskuje swoją opcjęname
na podstawie nazwy pliku, eliminując potrzebę ręcznego deklarowania nazwy, nawet gdy jest używana z<KeepAlive>
.
inheritAttrs
Kontroluje, czy domyślne zachowanie atrybutu komponentu powinno być włączone.
Typ
tsinterface ComponentOptions { inheritAttrs?: boolean // default: true }
Szczegóły
Domyślnie powiązania atrybutów zakresu nadrzędnego, które nie są rozpoznawane jako rekwizyty, będą „przechodzić”. Oznacza to, że gdy mamy komponent z jednym korzeniem, wiązania te zostaną zastosowane do elementu głównego komponentu podrzędnego jako normalne atrybuty HTML. Podczas tworzenia komponentu, który otacza element docelowy lub inny komponent, nie zawsze może to być pożądane zachowanie. Poprzez ustawienie
inheritAttrs
nafalse
, to domyślne zachowanie może zostać wyłączone. Atrybuty są dostępne poprzez właściwość instancji$attrs
i mogą być jawnie powiązane z elementem innym niż root za pomocąv-bind
.Przykład
Podczas deklarowania tej opcji w komponencie, który używa
<script setup>
, można użyć makradefineOptions
:vue<script setup> defineProps(['label', 'value']) defineEmits(['input']) defineOptions({ inheritAttrs: false }) </script> <template> <label> {{ label }} <input v-bind="$attrs" v-bind:value="value" v-on:input="$emit('input', $event.target.value)" /> </label> </template>
Zobacz również Fallthrough Attributes
components
Obiekt rejestrujący komponenty, które mają zostać udostępnione instancji komponentu.
Typ
tsinterface ComponentOptions { components?: { [key: string]: Component } }
Przykład
jsimport Foo from './Foo.vue' import Bar from './Bar.vue' export default { components: { // skrót Foo, // rejestrowanie pod inną nazwą RenamedBar: Bar } }
Zobacz również Component Registration
directives
Obiekt rejestrujący dyrektywy, które mają zostać udostępnione instancji komponentu.
Typ
tsinterface ComponentOptions { directives?: { [key: string]: Directive } }
Przykład
jsexport default { directives: { // włącza v-focus w szablonie focus: { mounted(el) { el.focus() } } } }
template<input v-focus>
Zobacz również Custom Directives