Komponent Instansi
INFO
Bu sahifa komponentning ommaviy instansiyasida, ya'ni this
da 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
props
opsiyasi 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
$el
komponent mount qilinmagunchaundefined
bo'ladi.- Bitta ildiz elementiga ega komponentlar uchun,
$el
o'sha elementga ishora qiladi. - Matn ildiziga ega komponentlar uchun,
$el
matn tuguniga ishora qiladi. - Bir nechta ildiz tugunlariga ega komponentlar uchun,
$el
Vue 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
$el
ga 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
$options
ob'ekti joriy komponent uchun hal qilingan opsiyalarni ochadi va bu mumkin bo'lgan manbalarning birlashtirilgan natijasi:- Global mixinlar
- Komponent
extends
bazasi - 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.$slots
da o'sha slotning nomiga mos keladigan kalit ostida vnode'lar massivini qaytaruvchi funksiya sifatida ochiladi. Default slotthis.$slots.default
sifatida 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,
$attrs
dagi 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 vainheritAttrs
opsiyasi 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 = () => void
Tafsilotlar
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 qiymatundefined
bo'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'ningthis
konteksti joriy komponent instansiyasiga bog'langan.Qarang
nextTick()