μ΄λ² μ±ν°λ λκ΄μ μ λ°μ΄νΈμ λν΄ λ€λ£¨μμ΅λλ€.
β οΈ μ 리ν λ΄μ©μ μ€νλ μλͺ»λ μ λ³΄κ° μμ μ μμ΅λλ€. λκΈλ‘ μλ €μ£Όμλ©΄ κ°μ¬νκ² μ΅λλ€
const todoForm = new TodoForm({
$target,
onSubmit: async (content) => {
const todo = {
content,
isCompleted: false
}
// λκ΄μ μ
λ°μ΄νΈ -----
this.setState({
...this.state,
todos: [
...this.state.todos,
todo
]
})
// --------
await request(`/${this.state.username}`, {
method: 'POST',
body: JSON.stringify(todo)
})
await fetchTodos()
}
});
μμμ request μμ²μ νκΈ° μ μ setStateλ₯Ό λ¨Όμ κ°±μ (λ λλ§)νλ λΆλΆμ²λΌ μ¬μ©μκ° μ
λ ₯νλ©΄ νλ©΄(UI)μ λ¨Όμ κ°±μ
νκ³ μλ²μ μμ²νλ κ²μ΄λ€.
μ¦, μλ² μμ²μ΄ 무쑰건 μ±κ³΅νλ€λ κ°μ νμ νΌμμ μ
λ ₯ν μ 보λ₯Ό μ¦μ λ°λ‘ λ λλ§ν΄μ£Όκ³ μλ²μμ²μ 보λ΄λ κ²μ΄λ€. μλ²μμ ν΅μ μ λ°μνλ μκ°μ°¨λ₯Ό μ€μ΄κΈ° μν΄ μ¬μ©νλ λ°©λ²μ΄λ€.
(νΌμ μκ°νκΈ°μ "μ~ 무쑰건 μ±κ³΅νλκΉ μ°μ λ°μν΄~"λΌκ³ ν΄μ λκ΄μ μΈκ°λ³΄λ€..)
리μ‘νΈ μΏΌλ¦¬μμ μ¬μ©λλ€.
React Query - Optimistic Updates
λλμ΄ λ°λ¦° κ°μλ₯Ό λ€ λ€μκ³ TodoApp μ€μ΅μ΄ λλ¬λ€. μ΄λ²μ£Ό λ΄λ΄ λ°°μ΄ λΉλκΈ°μ²λ¦¬, fetch, history, λκ΄μ μ
λ°μ΄νΈ, μ»΄ν¬λνΈ λΆλ¦¬ λ±λ± λͺ¨λ λ΄μ©μ΄ Todo Appμ λ€μ΄μλ€. λΆλͺ
ν루ν루 κ°λ
μ λ°°μΈ λμλ μ‘°κΈ λ²
μ°¨λλΌλ λ°λΌκ° μ μμλλ° νλ²μ λͺ¨λ λ΄μ©μ΄ μμμ§λκΉ μ€μ΅ λ°λΌκ°κΈ°μ κΈκΈνμλ€.
μ€μ΅μ΄ λλκ³ λ€μ μ½λλ₯Ό μ΄ν΄λ³΄λλ° κ° μ»΄ν¬λνΈ(api, storage, parse λ±) μμ μ νμΌμμλ§ λ°μ΄ν°κ° λ³νκ³ λ€λ₯Έ νμΌμλ μν₯μ λΌμΉμ§ μλ κ² λ±μ΄ λμ 보μλ€. μ μ΄λ°κ² μ»΄ν¬λνΈ κ΅¬μ‘°κ΅¬λ~ μΆμλ€. μ΄ μ½λλ₯Ό λ€μμ£Ό λ
Έμ
ν΄λ‘λμ νκΈ° μ μ 2-3λ²μ λ λ΄μΌκ² λ€..(κ°λ₯,,?)
λΆλͺ
ν΄λ‘μ¦ λ―Έν
λ μΌμμΌμ λ§μ΄ μ¬μ΄λλΌκ³ νμ
¨λλ°... κ°λ₯νκ² λ§λμγ
γ
π
λ΄μΌ λ€λ₯Έ κ°μΈ μΌμ λ μλλ° λ€ ν μ μμ μ§ λͺ¨λ₯΄κ² λ€.. μμμΌμλ ν μΌμ΄ λ§μ μκ°μ΄ μλλ°γ
γ
ν μ μλ μ΅λν ν΄λ³΄μ!
κ·Έλ κ² 7μ°μΉ.. μΌ μμ΄λ 무μκ²γ γ γ γ γ γ