:::info μ°Έκ³ μλͺ μ£ΌκΈ° ν μ μ¬λ¬ μ¬μ©λ²μ λν΄μλ κ°μ΄λ - μλͺ μ£ΌκΈ° ν μ μ°Έκ³ νμμμ€. :::
μΈμ€ν΄μ€κ° μ΄κΈ°νλ ν νΈμΆλ©λλ€.
-
νμ :
interface ComponentOptions { beforeCreate?(this: ComponentPublicInstance): void }
-
μΈλΆ μ¬ν:
μΈμ€ν΄μ€κ° μ΄κΈ°ν λκ³ propsκ° ν΄κ²°λ λ μ¦μ νΈμΆλ©λλ€.
κ·Έλ° λ€μ propsλ λ°μν μμ±μΌλ‘ μ μλκ³
data()
λλcomputed
μ κ°μ μνκ° μ€μ λ©λλ€.Composition APIμ
setup()
ν μbeforeCreate()
μ‘°μ°¨λ λͺ¨λ Options API ν (hook)λ³΄λ€ λ¨Όμ νΈμΆλλ€λ μ μ μ£ΌμνμΈμ.
μΈμ€ν΄μ€κ° λͺ¨λ μν κ΄λ ¨ μ΅μ μ²λ¦¬λ₯Ό μλ£ν ν νΈμΆλ©λλ€.
-
νμ :
interface ComponentOptions { created?(this: ComponentPublicInstance): void }
-
μΈλΆ μ¬ν:
λ°μν λ°μ΄ν°, κ³μ°λ μμ±, λ©μλ λ° κ°μμκ° μ€μ λ ν, μ΄ ν μ΄ νΈμΆλλ©΄ λ©λλ€. κ·Έλ¬λ λ§μ΄ν λ¨κ³κ° μμλμ§ μμμΌλ―λ‘,
$el
μμ±μ μμ§ μ¬μ©ν μ μμ΅λλ€.
μ»΄ν¬λνΈκ° λ§μ΄νΈλκΈ° μ§μ νΈμΆλ©λλ€.
-
νμ :
interface ComponentOptions { beforeMount?(this: ComponentPublicInstance): void }
-
μΈλΆ μ¬ν:
λ°μν μν μ€μ μ΄ μλ£λλ©΄ μ΄ ν μ΄ νΈμΆλμ§λ§, μμ§ DOM λ Έλκ° μμ±λμ§λ μμμΌλ©°, 첫 DOM λ λ μ΄ννΈλ₯Ό μ€ννλ €κ³ ν©λλ€.
μ΄ ν μ μλ² μ¬μ΄λ λ λλ§ μ€μ νΈμΆλμ§ μμ΅λλ€.
μ»΄ν¬λνΈκ° λ§μ΄νΈλ ν νΈμΆλ©λλ€.
-
νμ :
interface ComponentOptions { mounted?(this: ComponentPublicInstance): void }
-
μΈλΆ μ¬ν:
μ»΄ν¬λνΈκ° λ§μ΄νΈλ κ²μΌλ‘ κ°μ£Όλλ κ²½μ°:
-
λκΈ°μ μΌλ‘ μ μΈλ λͺ¨λ μμ μ»΄ν¬λνΈκ° λ§μ΄νΈλ¨(λΉλκΈ° μ»΄ν¬λνΈ λλ
<Suspense>
νΈλ¦¬ λ΄λΆ μ»΄ν¬λνΈλ ν¬ν¨νμ§ μμ). -
μ체 DOM νΈλ¦¬κ° μμ±λμ΄ μμ 컨ν μ΄λμ μ½μ λ κ²½μ°. μ±μ λ£¨νΈ μ»¨ν μ΄λκ° λ¬Έμ λ΄μ μκ³ , μ»΄ν¬λνΈμ DOM νΈλ¦¬λ λ¬Έμ λ΄ μλ κ²½μ°μλ§ λ³΄μ₯λ¨.
μ΄ ν μ μΌλ°μ μΌλ‘ μ»΄ν¬λνΈμ λ λλ§λ DOMμ μ κ·Όν΄μΌ νλ μ¬μ΄λ μ΄ννΈλ₯Ό μ€ννκ±°λ, μλ²μμ λ λλ§λ μ±μ DOM κ΄λ ¨ μ½λλ₯Ό ν΄λΌμ΄μΈνΈμμλ§ μ‘°μνλλ‘ μ ννλ λ° μ¬μ©λ©λλ€.
μ΄ ν μ μλ² μ¬μ΄λ λ λλ§ μ€μ νΈμΆλμ§ μμ΅λλ€.
-
λ°μν μν λ³κ²½μ μν μ»΄ν¬λνΈ DOM νΈλ¦¬ μ λ°μ΄νΈ μ§μ νΈμΆλ©λλ€.
-
νμ :
interface ComponentOptions { beforeUpdate?(this: ComponentPublicInstance): void }
-
μΈλΆ μ¬ν:
μ΄ ν μ Vueκ° DOMμ μ λ°μ΄νΈνκΈ° μ , DOM μνμ μ κ·Όνλ λ° μ¬μ©ν μ μμ΅λλ€. μ΄ ν λ΄λΆμμ μ»΄ν¬λνΈ μνλ₯Ό μμ νλ κ²λ μμ ν©λλ€.
μ΄ ν μ μλ² μ¬μ΄λ λ λλ§ μ€μ νΈμΆλμ§ μμ΅λλ€.
λ°μν μν λ³κ²½μ μν μ»΄ν¬λνΈ DOM νΈλ¦¬ μ λ°μ΄νΈ ν νΈμΆλ©λλ€.
-
νμ :
interface ComponentOptions { updated?(this: ComponentPublicInstance): void }
-
μΈλΆ μ¬ν:
λΆλͺ¨ μ»΄ν¬λνΈμ
updated
ν μ μμ μ»΄ν¬λνΈμupdated
ν μ΄νμ νΈμΆλ©λλ€.μ΄ ν μ λ°μν μν λ³κ²½μ μν μ»΄ν¬λνΈ DOM νΈλ¦¬ μ λ°μ΄νΈ ν νΈμΆλ©λλ€. ν μ½λλΈλ λ΄μμ νΉμ μν λ³κ²½ ν, μ΄μ΄μ μ λ°μ΄νΈλ DOMμ μ κ·Όν΄μΌ νλ λ‘μ§μ κ²½μ°, nextTick()μ μ¬μ©ν΄μΌ ν©λλ€.
μ΄ ν μ μλ² μ¬μ΄λ λ λλ§ μ€μ νΈμΆλμ§ μμ΅λλ€.
:::warning
updated
ν μμ μ»΄ν¬λνΈ μνλ₯Ό λ³κ²½νλ©΄, 무ν μ λ°μ΄νΈ 루νκ° λ°μν μ μμ΅λλ€. :::
μ»΄ν¬λνΈ μΈμ€ν΄μ€κ° λ§μ΄νΈ ν΄μ λκΈ° μ§μ νΈμΆλ©λλ€.
-
νμ :
interface ComponentOptions { beforeUnmount?(this: ComponentPublicInstance): void }
-
μΈλΆ μ¬ν:
μ΄ ν μ΄ νΈμΆλ κ²½μ°μλ μ»΄ν¬λνΈ μΈμ€ν΄μ€λ μ¬μ ν μ¨μ ν μλν©λλ€.
μ΄ ν μ μλ² μ¬μ΄λ λ λλ§ μ€μ νΈμΆλμ§ μμ΅λλ€.
μ»΄ν¬λνΈκ° λ§μ΄νΈ ν΄μ λ ν νΈμΆλ©λλ€.
-
νμ :
interface ComponentOptions { unmounted?(this: ComponentPublicInstance): void }
-
μΈλΆ μ¬ν:
μ»΄ν¬λνΈκ° μΈλ§μ΄νΈλ κ²μΌλ‘ κ°μ£Όλλ κ²½μ°:
-
λͺ¨λ μμ μ»΄ν¬λνΈκ° μΈλ§μ΄νΈλ¨.
-
κ΄λ ¨λ λͺ¨λ λ°μν μ΄ννΈ(
setup()
λμ μμ±λ λ λλ§ μ΄ννΈ λ° κ³μ°λ μμ±/κ°μμ)κ° μ€μ§λ¨.
μ΄ ν μ μ¬μ©νμ¬ νμ΄λ¨Έ, DOM μ΄λ²€νΈ 리μ€λ λλ μλ² μ°κ²°κ³Ό κ°μ΄ μλμΌλ‘ μμ±λ μ¬μ΄λ μ΄ννΈλ₯Ό μ 리ν©λλ€.
μ΄ ν μ μλ² μ¬μ΄λ λ λλ§ μ€μ νΈμΆλμ§ μμ΅λλ€.
-
μμ μ»΄ν¬λνΈμμ μ νλ μλ¬κ° μΊ‘μ³λμμ λ νΈμΆλ©λλ€.
-
νμ :
interface ComponentOptions { errorCaptured?( this: ComponentPublicInstance, err: unknown, instance: ComponentPublicInstance | null, info: string ): boolean | void }
-
μΈλΆ μ¬ν:
λ€μκ³Ό κ°μ μΆμ²μ μλ¬λ₯Ό μΊ‘μ²ν μ μμ΅λλ€:
- μ»΄ν¬λνΈ λ λ
- μ΄λ²€νΈ νΈλ€λ¬
- μλͺ μ£ΌκΈ° ν
setup()
ν¨μ- κ°μμ
- 컀μ€ν λλ ν°λΈ ν
- νΈλμ§μ ν
ν μ 'μλ¬', 'μλ¬λ₯Ό νΈλ¦¬κ±°ν μ»΄ν¬λνΈ μΈμ€ν΄μ€', 'μλ¬ μμ€ μ νμ μ§μ νλ μ 보 λ¬Έμμ΄' μΈ κ°μ μΈμλ₯Ό λ°μ΅λλ€.
:::tip νλ‘λμ μμλ 3λ²μ§Έ μΈμ(
info
)κ° μ 체 μ 보 λ¬Έμμ΄ λμ μΆμ½λ μ½λλ‘ μ 곡λ©λλ€. μ½λμ λ¬Έμμ΄ λ§€νμ νλ‘λμ μ€λ₯ μ½λ μ°Έμ‘°μμ νμΈν μ μμ΅λλ€. :::errorCaptured
ν μμ μ»΄ν¬λνΈ μνλ₯Ό μμ νμ¬ μ¬μ©μμκ² μλ¬ μνλ₯Ό νμν μ μμ΅λλ€. κ·Έλ¬λ μλ¬κ° λ μ»΄ν¬λνΈμμ μλ¬ μνλ₯Ό λ λλ§ν΄μλ μλ©λλ€. κ·Έλ μ§ μμΌλ©΄ μ»΄ν¬λνΈκ° 무ν λ λλ§ λ£¨νμ λΉ μ§λλ€.ν μ
false
λ₯Ό λ°ννμ¬ μλ¬κ° λ μ΄μ μ νλμ§ μλλ‘ ν μ μμ΅λλ€. μλμ μλ¬ μ ν μΈλΆ μ¬νμ μ°Έμ‘°νμμμ€.μλ¬ μ ν κ·μΉ
-
κΈ°λ³Έμ μΌλ‘ λͺ¨λ μλ¬λ λ¨κ³μ μΌλ‘ μ νλλ©°,
app.config.errorHandler
κ° μ μλ κ²½μ°, μ΅μ’ μ μΌλ‘ μ΄κ³³μΌλ‘ μ νλλ―λ‘ ν κ³³μμ μλΉμ€ λΆμ λ° λ³΄κ³ μμ μ ν μ μμ΅λλ€. -
μ»΄ν¬λνΈμ μμ μ²΄μΈ λλ λΆλͺ¨ 체μΈμ μ¬λ¬ κ°μ
errorCaptured
νν¬κ° μ‘΄μ¬νλ κ²½μ°, λͺ¨λ νν¬λ λμΌν μ€λ₯μ λν΄ μλμμ μλ‘ μμλλ‘ νΈμΆλ©λλ€. μ΄λ λ€μ΄ν°λΈ DOM μ΄λ²€νΈμ λ²λΈλ§ λ©μ»€λμ¦κ³Ό μ μ¬ν©λλ€. -
errorCaptured
ν μ체μμ μλ¬κ° λ°μνλ©΄, μ΄ μλ¬μ μλ μΊ‘μ²λ μλ¬κ° λͺ¨λapp.config.errorHandler
λ‘ μ μ‘λ©λλ€. -
errorCaptured
ν μμfalse
λ₯Ό λ°ννλ©΄ λ μ΄μ μλ¬κ° μ νλμ§ μμ΅λλ€. μ΄κ²μ λ³Έμ§μ μΌλ‘ "μ΄ μλ¬λ μ²λ¦¬λμμΌλ―λ‘ λ¬΄μλμ΄μΌ ν©λλ€."λ₯Ό μλ―Έν©λλ€. λ°λΌμ μ΄ν λ¨κ³μ μΌλ‘ μ νλμ΄μΌ νerrorCaptured
ν λλapp.config.errorHandler
μ μ΄ μλ¬λ‘ μΈν νΈμΆ λμμ μμ΅λλ€.
μ»΄ν¬λνΈμ λ λ μ΄ννΈμ μν΄ λ°μν μμ‘΄μ±μ΄ μΆμ λμ λ, νΈμΆλ©λλ€.
μ΄ ν μ κ°λ° λͺ¨λ μ μ©μ΄λ©° μλ² μΈ‘ λ λλ§ μ€μλ νΈμΆλμ§ μμ΅λλ€.
-
νμ :
interface ComponentOptions { renderTracked?(this: ComponentPublicInstance, e: DebuggerEvent): void } type DebuggerEvent = { effect: ReactiveEffect target: object type: TrackOpTypes /* 'get' | 'has' | 'iterate' */ key: any }
-
μ°Έκ³ : κ°μ΄λ - λ°μν μ¬ν
μ»΄ν¬λνΈμ λ λ μ΄ννΈκ° λ°μν μμ‘΄μ±μ μν΄ λ€μ μ€νλλλ‘ νΈλ¦¬κ±°λ κ²½μ°, νΈμΆλ©λλ€.
-
νμ :
interface ComponentOptions { renderTriggered?(this: ComponentPublicInstance, e: DebuggerEvent): void } type DebuggerEvent = { effect: ReactiveEffect target: object type: TriggerOpTypes /* 'set' | 'add' | 'delete' | 'clear' */ key: any newValue?: any oldValue?: any oldTarget?: Map<any, any> | Set<any> }
-
μ°Έκ³ : κ°μ΄λ - λ°μν μ¬ν
<KeepAlive>
λ‘ μΊμλ μ»΄ν¬λνΈ μΈμ€ν΄μ€κ° DOM νΈλ¦¬μ μΌλΆλ‘ μ½μ
λ ν νΈμΆλ©λλ€.
μ΄ ν μ μλ² μ¬μ΄λ λ λλ§ μ€μ νΈμΆλμ§ μμ΅λλ€.
-
νμ :
interface ComponentOptions { activated?(this: ComponentPublicInstance): void }
<KeepAlive>
λ‘ μΊμλ μ»΄ν¬λνΈ μΈμ€ν΄μ€κ° DOM νΈλ¦¬μμ μ κ±°λ ν νΈμΆλ©λλ€.
μ΄ ν μ μλ² μ¬μ΄λ λ λλ§ μ€μ νΈμΆλμ§ μμ΅λλ€.
-
νμ :
interface ComponentOptions { deactivated?(this: ComponentPublicInstance): void }
μ»΄ν¬λνΈ μΈμ€ν΄μ€κ° μλ²μμ λ λλ§ λκΈ° μ μ μλ£(resolve)λμ΄μΌ νλ λΉλκΈ° ν¨μμ λλ€.
-
νμ :
interface ComponentOptions { serverPrefetch?(this: ComponentPublicInstance): Promise<any> }
-
μΈλΆ μ¬ν:
ν μ΄ Promiseλ₯Ό λ°ννλ©΄, μλ² λ λλ¬λ μ»΄ν¬λνΈλ₯Ό λ λλ§νκΈ° μ Promiseκ° ν΄κ²°λ λκΉμ§ κΈ°λ€λ¦½λλ€.
μ΄ ν μ SSR(μλ² μ¬μ΄λ λ λλ§) μ€μλ§ νΈμΆλλ―λ‘, μλ² μ μ© λ°μ΄ν° κ°μ Έμ€κΈ°λ₯Ό μ€ννλ λ° μ¬μ©ν μ μμ΅λλ€.
-
μμ
export default { data() { return { data: null } }, async serverPrefetch() { // μλ²μμ 미리 λ°μ΄ν°λ₯Ό κ°μ Έμ€λ κ²μ // ν΄λΌμ΄μΈνΈμμ λ°μ΄ν°λ₯Ό μμ²νλ κ²λ³΄λ€ λΉ λ¦. // μ΅μ΄ λ°μ΄ν° μμ² κ²°κ³Όλ‘ μ»΄ν¬λνΈμ μΌλΆκ° λ λλ§ λ¨. this.data = await fetchOnServer(/* ... */) }, async mounted() { if (!this.data) { // λ§μ΄νΈ μ λ°μ΄ν°κ° nullμΌ κ²½μ°, // μ»΄ν¬λνΈκ° ν΄λΌμ΄μΈνΈμμ λμ μΌλ‘ λ λλ§λλλ‘ // ν΄λΌμ΄μΈνΈ μΈ‘μμ κ°μ Έμ€κΈ°λ₯Ό μ€νν΄μΌ ν¨. this.data = await fetchOnClient(/* ... */) } } }