Komponent Instansi
INFO
Bu sahifa komponentning ommaviy instansiyasida, ya'ni thisda ochilgan o'rnatilgan xususiyatlar va metodlarni hujjatlashtiradi.
Bu sahifada ro'yxatdan o'tkazilgan barcha xususiyatlar faqat o'qish uchun (agar $data ichidagi ichki xususiyatlar bo'lmasa).
$data
data opsiyasidan qaytarilgan ob'ekt, komponent tomonidan reaktiv qilingan. Komponent instansiyasi uning ma'lumotlar ob'ekti xususiyatlariga kirishni proxy qiladi.
Turi
tsinterface ComponentPublicInstance { $data: object }
$props
Komponentning joriy, hal qilingan props'larini ifodalovchi ob'ekt.
Turi
tsinterface ComponentPublicInstance { $props: object }Tafsilotlar
Faqat
propsopsiyasi orqali e'lon qilingan props'lar kiritiladi. Komponent instansiyasi uning props ob'ekti xususiyatlariga kirishni proxy qiladi.
$el
Komponent instansiyasi boshqarayotgan ildiz DOM tuguni.
Turi
tsinterface ComponentPublicInstance { $el: any }Tafsilotlar
$elkomponent mount qilinmagunchaundefinedbo'ladi.- Bitta ildiz elementiga ega komponentlar uchun,
$elo'sha elementga ishora qiladi. - Matn ildiziga ega komponentlar uchun,
$elmatn tuguniga ishora qiladi. - Bir nechta ildiz tugunlariga ega komponentlar uchun,
$elVue komponentning DOM'dagi o'rnini kuzatish uchun ishlatadigan placeholder DOM tuguni bo'ladi (matn tuguni yoki SSR hydration rejimida izoh tuguni).
TIP
Izchillik uchun, elementlarga to'g'ridan-to'g'ri kirish uchun
$elga tayanmasdan template refsdan foydalanish tavsiya etiladi.- Bitta ildiz elementiga ega komponentlar uchun,
$options
Joriy komponent instansiyasini yaratish uchun ishlatilgan hal qilingan komponent opsiyalari.
Turi
tsinterface ComponentPublicInstance { $options: ComponentOptions }Tafsilotlar
$optionsob'ekti joriy komponent uchun hal qilingan opsiyalarni ochadi va bu mumkin bo'lgan manbalarning birlashtirilgan natijasi:- Global mixinlar
- Komponent
extendsbazasi - Komponent mixinlari
U odatda maxsus komponent opsiyalarini qo'llab-quvvatlash uchun ishlatiladi:
jsconst app = createApp({ customOption: 'foo', created() { console.log(this.$options.customOption) // => 'foo' } })
$parent
Ota-ona instansiyasi, agar joriy instansiyaning biri bo'lsa. Bu ildiz instansiyasi uchun o'zida null bo'ladi.
Turi
tsinterface ComponentPublicInstance { $parent: ComponentPublicInstance | null }
$root
Joriy komponent daraxtining ildiz komponenti instansiyasi. Agar joriy instansiyaning ota-onalari bo'lmasa, bu qiymat o'zi bo'ladi.
Turi
tsinterface ComponentPublicInstance { $root: ComponentPublicInstance }
$slots
Ota-ona komponent tomonidan o'tkazilgan slotsni ifodalovchi ob'ekt.
Turi
tsinterface ComponentPublicInstance { $slots: { [name: string]: Slot } } type Slot = (...args: any[]) => VNode[]Tafsilotlar
Odatda render funksiyalarini qo'lda yozishda ishlatiladi, lekin slot mavjudligini aniqlash uchun ham ishlatilishi mumkin.
Har bir slot
this.$slotsda o'sha slotning nomiga mos keladigan kalit ostida vnode'lar massivini qaytaruvchi funksiya sifatida ochiladi. Default slotthis.$slots.defaultsifatida ochiladi.Agar slot scoped slot bo'lsa, slot funksiyalariga o'tkazilgan argumentlar slotga uning slot props'lari sifatida mavjud.
$refs
template refs orqali ro'yxatdan o'tkazilgan DOM elementlari va komponent instansiyalarining ob'ekti.
Turi
tsinterface ComponentPublicInstance { $refs: { [name: string]: Element | ComponentPublicInstance | null } }Qarang
$attrs
Komponentning fallthrough atributlarini o'z ichiga olgan ob'ekt.
Turi
tsinterface ComponentPublicInstance { $attrs: object }Tafsilotlar
Fallthrough Attributes ota-ona komponent tomonidan o'tkazilgan, lekin farzand tomonidan prop yoki chiqarilgan hodisa sifatida e'lon qilinmagan atributlar va hodisa ishlovchilari.
Default bo'yicha,
$attrsdagi hamma narsa agar faqat bitta ildiz elementi bo'lsa, komponentning ildiz elementida avtomatik ravishda meros qilinadi. Bu xatti-harakat komponent bir nechta ildiz tugunlariga ega bo'lsa o'chiriladi vainheritAttrsopsiyasi bilan aniq o'chirilishi mumkin.Qarang
$watch()
Kuzatuvchilarni yaratish uchun imperativ API.
Turi
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 = () => voidTafsilotlar
Birinchi argument kuzatish manbai. Bu komponent xususiyati nomi stringi, oddiy nuqta bilan ajratilgan yo'l stringi yoki getter funksiyasi bo'lishi mumkin.
Ikkinchi argument callback funksiyasi. Callback kuzatilayotgan manbaning yangi qiymati va eski qiymatini oladi.
immediate: kuzatuvchi yaratilganda callbackni darhol ishga tushirish. Birinchi chaqiruvda eski qiymatundefinedbo'ladi.deep: agar ob'ekt bo'lsa, manbaning chuqur o'tishini majburlash, shunda callback chuqur o'zgarishlarda ishga tushadi. Deep Watchersni tekshiring.flush: callback'ning flush vaqtini sozlash. Callback Flush Timing vawatchEffect()ni tekshiring.onTrack / onTrigger: kuzatuvchining bog'liqliklarini debug qilish. Watcher Debuggingni tekshiring.
Misol
Xususiyat nomini kuzatish:
jsthis.$watch('a', (newVal, oldVal) => {})Nuqta bilan ajratilgan yo'lni kuzatish:
jsthis.$watch('a.b', (newVal, oldVal) => {})Murakkab ifodalar uchun getter ishlatish:
jsthis.$watch( // har safar `this.a + this.b` ifodasi // boshqa natija berganida, handler chaqiriladi. // Bu xuddi biz computed xususiyatni // computed xususiyatni o'zini aniqlamasdan kuzatayotgandek. () => this.a + this.b, (newVal, oldVal) => {} )Kuzatuvchini to'xtatish:
jsconst unwatch = this.$watch('a', cb) // keyinroq... unwatch()Qarang
$emit()
Joriy instansiyada maxsus hodisani ishga tushirish. Qo'shimcha argumentlar tinglovchining callback funksiyasiga o'tkaziladi.
Turi
tsinterface ComponentPublicInstance { $emit(event: string, ...args: any[]): void }Misol
jsexport default { created() { // faqat hodisa this.$emit('foo') // qo'shimcha argumentlar bilan this.$emit('bar', 1, 2, 3) } }Qarang
$forceUpdate()
Komponent instansiyasini qayta render qilishni majburlash.
Turi
tsinterface ComponentPublicInstance { $forceUpdate(): void }Tafsilotlar
Vue'ning to'liq avtomatik reaktiv tizimi berilgani uchun, bunaqa narsa kamdan-kam kerak bo'ladi. Sizga bunaqa narsa kerak bo'lishi mumkin bo'lgan yagona holatlar - bu siz ilg'or reaktiv API'lardan foydalanib, aniq non-reaktiv komponent holatini yaratganingizda.
$nextTick()
Global nextTick()ning instansiyaga bog'langan versiyasi.
Turi
tsinterface ComponentPublicInstance { $nextTick(callback?: (this: ComponentPublicInstance) => void): Promise<void> }Tafsilotlar
Global versiyadan yagona farq shundaki,
this.$nextTick()ga o'tkazilgan callback'ningthiskonteksti joriy komponent instansiyasiga bog'langan.Qarang
nextTick()