λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ“  archive

[Vue.js μƒνƒœκ΄€λ¦¬ 3편] Vuex μ–Έμ œ, μ–΄λ–»κ²Œ μ¨μ•Όν• κΉŒ?

by HandHand 2022. 3. 7.

Redux λ₯Ό κ³ μ•ˆν•œ Dan Abramov λŠ” μƒνƒœ 관리에 λŒ€ν•΄ λ‹€μŒκ³Ό 같은 μ˜κ²¬μ„ λ§ν•œ 적이 μžˆμŠ΅λ‹ˆλ‹€.

 

Flux λΌμ΄λΈŒλŸ¬λ¦¬λŠ” μ•ˆκ²½κ³Ό κ°™μŠ΅λ‹ˆλ‹€. μ–Έμ œ ν•„μš”ν• μ§€λŠ” 슀슀둜 μ•Œκ²Œ λ©λ‹ˆλ‹€.

 

이번 ν¬μŠ€νŠΈμ—μ„œλŠ” vuex λ₯Ό μ–Έμ œ μ“°λŠ” 것이 쒋을지에 λŒ€ν•œ 고민을 ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

μ–΄λŠ κΈ°μˆ μ΄λ‚˜ λ§ˆμ°¬κ°€μ§€μ΄λ“― 항상 정닡인 것은 μ—†μœΌλ‹ˆκΉŒμš” πŸ˜„.

 

πŸ“Œ Vuex λ„μž… μ‹œ κ³ λ €ν•  점

μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 규λͺ¨

λ§Žμ€ μ‚¬λžŒλ“€μ€ μ•±μ˜ 규λͺ¨κ°€ 컀지면 Vuex κ°€ κΌ­ ν•„μš”ν•  것이라고 λ§ν•©λ‹ˆλ‹€.

μ’€ 더 μžμ„Έν•˜κ²ŒλŠ” 앱이 μ–΄λ– ν•œ λ°©μ‹μœΌλ‘œ 규λͺ¨κ°€ 컀지고 μžˆλŠ”μ§€κ°€ μ€‘μš”ν•©λ‹ˆλ‹€.

 

λŒ€λΆ€λΆ„μ˜ 데이터 흐름은 μΌμ •ν•œ νŒ¨ν„΄μ„ 가지고 μžˆλŠ” κ²½μš°κ°€ 있기 λ•Œλ¬Έμ—

쀑앙 μ§‘μ€‘μ‹μœΌλ‘œ 관리가 ν•„μš”ν•  것 κ°™λ‹€λŠ” νŒλ‹¨μ΄ λ“€ λ•ŒκΉŒμ§€

정말 Vuex κ°€ ν•„μš”ν•œ 상황인지 생각해볼 ν•„μš”κ°€ μžˆμŠ΅λ‹ˆλ‹€.

 

μ•±μ˜ 규λͺ¨κ°€ μž‘μ€λ° Vuex λ₯Ό μ μš©ν•œλ‹€λ©΄ λ‹€μŒκ³Ό 같이 μ½”λ“œκ°€ λ„ˆλ¬΄ μž₯ν™©ν•΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

 

1

 

μœ„λŠ” Vuex λ₯Ό μ‚¬μš©ν•œ 것과 μ‚¬μš©ν•˜μ§€ μ•Šμ€ λ²„μ „μ˜ μ½”λ“œμž…λ‹ˆλ‹€.

Vuex λ₯Ό μ‚¬μš©ν•  경우 보일러 ν”Œλ ˆμ΄νŠΈ μ½”λ“œκ°€ 증가해 μ½”λ“œ λ³΅μž‘λ„λ₯Ό 높일 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

이 κ²½μš°μ—λŠ” store pattern 을 ν†΅ν•œ μƒνƒœ 관리도 쒋은 방법이 될 수 μžˆμŠ΅λ‹ˆλ‹€.

 

둜직과 데이터 λ³΅μž‘λ„

데이터가 λ³΅μž‘ν•΄μ§€κ³  λ‹€μ–‘ν•œ μ»΄ν¬λ„ŒνŠΈμ—μ„œ μ‚¬μš©λ˜μ–΄μ•Ό ν•  κ²½μš°μ— λŒ€ν•΄μ„œλ„ 생각해봐야 ν•©λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄ λ³΅μž‘ν•œ 인증 κ΄€λ ¨ λ°μ΄ν„°λŠ” μ „μ—­μ μœΌλ‘œ μ‚¬μš©λ˜λ©°

이λ₯Ό 톡해 νŠΉμ • ν™”λ©΄ μ§„μž…μ„ ν—ˆμš©ν•˜λŠ” λΆ„κΈ°λ₯Ό μ μš©ν•©λ‹ˆλ‹€.

μ΄λŸ¬ν•œ 경우 Vuex λŠ” 데이터λ₯Ό κ΄€λ¦¬ν•˜λŠ” 쒋은 방법이 될 수 μžˆμŠ΅λ‹ˆλ‹€.

 

이λ₯Ό μš”μ•½ν•˜λ©΄ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€

2

 

πŸ“Œ Vuex 에 μ–΄λ–€ 데이터λ₯Ό μ €μž₯ν• κΉŒ?

이제 ν”„λ‘œμ νŠΈμ— Vuex λ₯Ό λ„μž…ν•˜κΈ°λ‘œ κ²°μ •ν–ˆλ‹€κ³  κ°€μ •ν•˜κ² μŠ΅λ‹ˆλ‹€.

그러면 μ–΄λ–€ 데이터λ₯Ό Vuex μ—μ„œ κ΄€λ¦¬ν•˜λŠ” 것이 μ’‹μ„κΉŒμš”?

 

이에 λŒ€ν•΄ λ§Žμ€ Vue κ°œλ°œμžλ“€μ΄ λ‹€μ–‘ν•œ μ˜κ²¬μ„ μ œμ‹œν•˜κ³  있고

κ·Έ 쀑 ν₯미둜운 λ‹€μ΄μ–΄κ·Έλž¨μ„ μ°Ύμ•„μ„œ κ°€μ Έμ™€λ΄€μŠ΅λ‹ˆλ‹€ πŸ˜„.

 

3

 

Provide / Inject πŸ€” ...?

사싀 μ €λŠ” Provide / Inject 에 λŒ€ν•΄μ„œ 회의적인 νŽΈμž…λ‹ˆλ‹€.

ν•΄λ‹Ή κΈ°λŠ₯을 μ‚¬μš©ν•˜λ©΄ 데이터 흐름 νŒŒμ•…μ΄ μ–΄λ ΅κ³  이둜 인해 디버깅이 νž˜λ“€μ–΄μ§‘λ‹ˆλ‹€.

Vue 곡식 λ¬Έμ„œμ—μ„œλ„ κ³ κΈ‰ ν”ŒλŸ¬κ·ΈμΈμ΄λ‚˜ μ»΄ν¬λ„ŒνŠΈ 라이브러리λ₯Ό μœ„ν•œ κΈ°λŠ₯이라고 λͺ…μ‹œλ˜μ–΄μžˆμŠ΅λ‹ˆλ‹€.

μ € 같은 경우 μž‘μ€ 규λͺ¨μ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ Vuex λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šμ„ λ•Œ

props drilling 을 ν”Όν•˜κΈ° μœ„ν•œ ν•˜λ‚˜μ˜ λ°©λ²•μœΌλ‘œ μ‚¬μš©ν•΄λ³Έ 적이 μžˆμŠ΅λ‹ˆλ‹€.

 

πŸ“Œ μ°Έκ³  자료

Do you really need Vuex? - LogRocket Blog

API - Vue.js

λ°˜μ‘ν˜•

πŸ’¬ λŒ“κΈ€