π― λ―Έλνλ‘μ νΈ_(HangHaeBox) FrontEnd π― πΊ
λλ§μ΄ λ³Ό μ μλ, λ΄κ° λ€λ μ¨ μ¬νκΈ°λ‘ λ° κ²½ν, μΆμ΅λ€μ μ¬μ§μΌλ‘ λ¨κ²¨λ³΄μλΌλ μκ°μμ μμλ νλ‘μ νΈμ λλ€.
- λλ§μ μ¬νκΈ°λ‘ λ° μΆμ΅μ μ¬μ§μ 보κ΄νλ κ°μΈ μ₯μμ΄κΈ° λλ¬Έμ λ‘κ·ΈμΈμ ν΄μΌ μ κ·Ό ν μ μμ΅λλ€.
- μ¬μ΄νΈ μ κ·Όμ μνμ¬ νμκ°μ μ΄ νμν©λλ€. μ΄μ λ°λ₯Έ νμκ°μ νμ΄μ§ μ λλ€.
-
λ‘κ·ΈμΈμ νκ²λλ©΄ λλ§μ 곡κ°μΌλ‘ λ€μ΄μ€κ² λ©λλ€. μ΄κ³³μμ μ¬νκΈ°λ‘, κ²½νμ κ΄ν ν΄λλ₯Ό μμ±ν μ μμ΅λλ€.
-
ν΄λλ₯Ό μμ±ν λμλ κ΄λ ¨ ν΄μνκ·Έλ₯Ό μΆκ°ν μ μλλ°, κ·Έ νκ·Έλ€μ΄ λͺ¨μ¬μ μ°μΈ‘μ μ¬μ©μλ₯Ό ν΅νμ΄μ λ§μ΄ μ°μΈ νκ·Έ Top5μ λ΄κ° λ§μ΄ μ΄ νκ·Έ Top5λ₯Ό νμΈ ν μ μμ΅λλ€.
-
λ΄κ° λ§μ΄ μ΄ νκ·Έλ μΌλ§λ νκ·Έλ₯Ό μ¬μ©νλμ§ μ«μλ‘λ λνλλ κ²μ νμΈν μ μμ΅λλ€.
-
ν΄λ μΆκ°ν λ μ¬ν νΉμ κ²½ν λ μ§, μ λͺ©, νκ·Έλ₯Ό μ λ ₯ν μ μμ΅λλ€.
-
λ μ§λ₯Ό λ¬λ ₯ννλ‘ μ νν μ μκ² κ΅¬ννμκ³ , μ λͺ©μ μ λ ₯λ§ νλ©΄ λ©λλ€.
-
νκ·Έμ κ²½μ° "#" μ λΆμ΄μ§ μκ³ λΆμ΄κ³ μΆμ νκ·Έλ₯Ό μ λ ₯νκ³ Enterν€λ₯Ό λλ₯΄λ©΄ μλμΌλ‘ "#" μ΄ λΆμ΄ νκ·Έ μ λ ₯μΉΈ λ°μ νμ¬κΉμ§ μ λ ₯ν νκ·Έ λ΄μμ΄ λ³΄μ λλ€.
- ν΄λ μΆκ° ν λ©μΈνμ΄μ§λ‘ λμμμ΅λλ€. λ©μΈνμ΄μ§μλ μ μλ μλ μΆκ°ν ν΄λκ° μμ±λ κ²μ νμΈ ν μ μμ΅λλ€.
- μμ±ν ν΄λνμ΄μ§μ λ€μ΄μ€κ² λλ©΄ ν΄λ νμ΄μ§κ° 보μ λλ€. μ΄κ³³μμλ μ¬μ§μΆκ° λ° μμ , ν΄λμμ , νκ·Έμμ μ κΈ°λ₯μ μ¬μ©ν μ μμ΅λλ€.
- μ¬μ§μ μΆκ°νκ³ μ νλ©΄ λ€μκ³Ό κ°μ μ¬μ§μΆκ°μ°½μ΄ λ¨κ² λ©λλ€. νμΌμ νμ λλ¬ μνλ μ¬μ§νμΌμ μΆκ°ν μ μμ΅λλ€.
- μ¬μ§μ μΆκ°νκ² λλ©΄ λ€μκ³Ό κ°μ΄ μΆκ°ν μ¬μ§μ΄ 보μ΄κ³ , νμΈλ²νΌμ λλ₯΄λ©΄ μ¬μ§μ΄ μΆκ°λ©λλ€.
- λ€μκ³Ό κ°μ΄ μ¬μ§μ΄ μΆκ°λ κ²μ νμΈν μ μμ΅λλ€. 체ν¬λ°μ€κ° μλ μ΄μ λ μ¬μ§ μμ νκΈ° κΈ°λ₯μ μ¬μ©ν λ, ν΄λΉνλ μ¬μ§μ 체ν¬λ°μ€λ₯Ό μ²΄ν¬ ν ν μμ νκΈ°λ₯Ό λλ₯΄λ©΄ μμ κ° λκ²λ νκΈ° μν¨μ λλ€.
- μμ±ν ν΄λ νμ΄μ§ νλ¨μ νκ·Έμμ λ²νΌμ λλ₯΄λ©΄ μ²μ ν΄λ μΆκ°ν λ μ λ ₯νλ νκ·Έλ₯Ό μμ ν μλ μκ³ , μλ‘ μΆκ°ν μλ μμ΅λλ€.
- μμλ‘ #νν΄99 νκ·Έλ₯Ό λ£μ΄μ μμ μλ£λ²νΌμ λλ₯΄λ©΄ λ€μ λμ€λ μ¬μ§κ³Ό κ°μ΄ μλ£κ° λ©λλ€.
- μμ±ν ν΄λνμ΄μ§μ μλ ν΄λμμ λ²νΌμ λλ μλ, ν΄λ μμ κ° μ§νλμ΄ λ©μΈνμ΄μ§λ‘ λμμ€κ³ , μΌμ μ μμ±κ³Ό λ€λ₯΄κ² μμ κ° λκ²μ νμΈν μ μμ΅λλ€.
μ΄λ―Έμ§λ₯Ό μμ ν λ reducerμ λ°μμ΄ λμ§ μλ νμμ΄ λ°κ²¬ λμ΅λλ€. reducerμ λ°°μ΄μλ°μ μ²λ¦¬ν΄μ£Όλ λ‘μ§μ μμ±ν΄ ν΄κ²°νμ΅λλ€.
μ½λ 보기
const targetArr = action.payload;
for (let i = 0; i < state.photos.length; ++) {
if (targetArr.includes(state.photos[i].id + "")) {
state.photos.splice(i, 1);
i--;
}
λ‘κ·ΈμΈμ μ±κ³΅ν μ μλ²μμ ν ν°μ λ°κ³ home νμ΄μ§λ‘ μ΄λν΄μ£Όλ μ½λλ₯Ό μμ±νμ΅λλ€. ν ν°μ λ°μμ€λ λΆλΆμ λΉλκΈ°λ‘ λμνκΈ° λλ¬Έμ ν ν°μ λ°μμ€κΈ°μ μ ννλ©΄μΌλ‘ μ΄λμ΄ λλ²λ¦¬λ λ¬Έμ κ° λ°μ νμ΅λλ€. μ΄λ dispatchμ 리ν΄κ°μ΄ promiseλκ±Έ νμΈνκ³ thenμ μ΄μ©ν΄ λΉλκΈ° λμμ΄ λλ λ νλ©΄μ μ΄λνλ μ½λκ° λμνλλ‘ μμ νμ΅λλ€.
λ‘κ·ΈμΈ μ΄νμ νμ΄μ§λ€μ apiλ μ λΆ μλ²μ ν΅μ ν λλ§λ€ ν ν°μ μ μ‘νλλ‘ λΌμμ΅λλ€. κΈ°μ‘΄μ μ½λλ apiμμ²λλ§λ€ ν ν°μ λ΄μ 보λ΄μ£Όμ΄ λ°λ³΅λλ μ½λκ° λ§μ΄ λ°μ λμ΅λλ€. λ°λ³΅λλ μ½λκ° λ무 λ§λ€κ³ μκ°νμ¬ axios μΈν°μ ν°λ₯Ό μ΄μ© νμ΅λλ€. μλ²μ ν΅μ μ±κ³΅ λ°λ‘μ§μ ν ν°μ λ΄μ 보λ΄μ£Όλλ‘ μ½λλ₯Ό μμ±ν΄ λ°λ³΅λλ μ½λ μ¬μ©μ μ€μμ΅λλ€.
λ‘κ·ΈμΈκ³Ό νμκ°μ μ κ°μ 리λμλ₯Ό 곡μ ν©λλ€. μλ¬κ° λ°μν μ μλ¬λ©μΈμ§λ₯Ό λμ΄μ£Όλ λ°©μμ΄μλλ° κ°μ 리λμλ₯Ό 곡μ νλ€λ³΄λ νμκ°μ μμ μλ¬κ° λ°μνκ³ κ·Έλλ‘ λ‘κ·ΈμΈμ°½μΌλ‘ μ΄λνλ©΄ μλ¬λ©μΈμ§κ° κ·Έλλ‘ λ¨μμλ λ²κ·Έκ° λ°μνμ΅λλ€. 곡μ νκ³ μλ auth reducerμμ μλ¬λ©μΈμ§λ₯Ό μ§μμ£Όλ actionμ λ§λ€μ΄ λ‘κ·ΈμΈκ³Ό νμκ°μ μ΄ λ°λλλ§λ€ κ·Έ actionμ μ€νμμΌ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€.
π νμ μκ°
- π·ββ μ€μλ―Ό π·ββμ΄μ§νΈ