Options: Boshqa
name
Komponent uchun ko'rsatish nomini aniq e'lon qiladi.
Turi
tsinterface ComponentOptions { name?: string }Tafsilotlar
Komponent nomi quyidagilar uchun ishlatiladi:
- Komponentning o'z shablonida rekursiv o'z-o'ziga havola
- Vue DevTools'ning komponent tekshirish daraxtida ko'rsatish
- Ogohlantirish komponent izlarida ko'rsatish
Single-File Components ishlatganingizda, komponent o'z nomini fayl nomidan avtomatik aniqlaydi. Masalan,
MyComponent.vuenomli fayl "MyComponent" ko'rsatish nomiga ega bo'ladi.Yana bir holat shundaki, komponent
app.componentyordamida global ravishda ro'yxatdan o'tkazilganda, global ID avtomatik ravishda uning nomi sifatida o'rnatiladi.nameopsiyasi sizga aniqlangan nomni bekor qilish yoki hech qanday nom aniqlanmagan bo'lganda (masalan, build vositalaridan foydalanilmaganda yoki inline bo'lmagan SFC komponenti) aniq nomni ta'minlash imkonini beradi.nameaniq zarur bo'lgan bir holat mavjud:<KeepAlive>ninginclude / excludeprop'lari orqali keshga olish mumkin bo'lgan komponentlarga mos kelishda.TIP
3.2.34 versiyasidan boshlab,
<script setup>ishlatadigan single-file komponent o'znameopsiyasini fayl nomidan avtomatik aniqlaydi, bu esa<KeepAlive>bilan ishlatilganda ham nomni qo'lda e'lon qilish zarurligini olib tashlaydi.
inheritAttrs
Komponentning default atribut o'tkazish xatti-harakatini yoqish kerakligini boshqaradi.
Turi
tsinterface ComponentOptions { inheritAttrs?: boolean // default: true }Tafsilotlar
Default bo'yicha, prop sifatida tan olinmagan ota-ona scope atribut bog'lamalari "o'tib ketadi". Bu degani, bizda bitta ildiz komponenti bo'lganda, bu bog'lamalar bola komponentning ildiz elementi uchun oddiy HTML atributlari sifatida qo'llaniladi. Maqsadli element yoki boshqa komponentni o'rab oladigan komponent yaratishda, bu har doim ham kerakli xatti-harakat bo'lmasligi mumkin.
inheritAttrsnifalsega o'rnatish orqali bu default xatti-harakat o'chirilishi mumkin. Atributlar$attrsinstansiya xususiyati orqali mavjud vav-bindyordamida ildiz bo'lmagan elementga aniq bog'lanishi mumkin.Misol
<script setup>ishlatadigan komponentda bu opsiyani e'lon qilishda,defineOptionsmakrosidan foydalanishingiz mumkin: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>Qarang
components
Komponent instansiyasi uchun mavjud bo'lishi kerak bo'lgan komponentlarni ro'yxatdan o'tkazadigan ob'ekt.
Turi
tsinterface ComponentOptions { components?: { [key: string]: Component } }Misol
jsimport Foo from './Foo.vue' import Bar from './Bar.vue' export default { components: { // qisqartma Foo, // boshqa nom ostida ro'yxatdan o'tkazish RenamedBar: Bar } }
directives
Komponent instansiyasi uchun mavjud bo'lishi kerak bo'lgan direktivalarni ro'yxatdan o'tkazadigan ob'ekt.
Turi
tsinterface ComponentOptions { directives?: { [key: string]: Directive } }Misol
jsexport default { directives: { // shablonda v-focus ni yoqish focus: { mounted(el) { el.focus() } } } }template<input v-focus>Qarang Maxsus Direktivalar