πμ€λ λ°°μ΄ κ²
Redux
:Prop Drollingμ ν΄κ²°νκΈ° μν λΌμ΄λΈλ¬λ¦¬
리λμ€μμ μ¬μ©λλ ν€μλ
- μ‘μ
: μνμ λ³νκ° νμν λ μ‘μ μ λ°μ
μ‘μ κ°μ²΄μλ type νλκ° νμμ μ΄λ€.
- μ‘μ μμ±ν¨μ
: μ‘μ μ λ§λλ ν¨μ. νλΌλ―Έν°λ₯Ό λ°μμμ μ‘μ κ°μ²΄ ννλ‘ λ§λ€μ΄μ€λ€.
export const addTask = (content: string): Action => {
return {
type: "ADD_TASK",
payload: {
id: v4(),
content,
complete: false,
},
};
};
- 리λμ
:λ³νλ₯Ό μΌμΌν€λ ν¨μ
νμ¬ μν, μ λ¬λ°μ μ‘μ λ κ°μ§ νλΌλ―Έν°λ₯Ό λ°μμ μλ‘μ΄ μνλ₯Ό λ§λ€μ΄ λ°ννλ€. useReducerλ₯Ό μ¬μ©νλ κ²κ³Ό λκ°μ ννλ₯Ό κ°μ§κ³ μλ€.
export const tasks = (state: Task[] = [], action: Action) => {
switch (action.type) {
case "ADD_TASK": {
const newTask = action.payload;
return [...state, newTask];
}
case "UPDATE_TASK": {
const updateTask = action.payload;
return state.map((oldTask) =>
oldTask.id === updateTask.id ? updateTask : oldTask
);
}
case "REMOVE_TASK": {
const removedTask = action.payload;
return state.filter((task) => task.id !== removedTask.id);
}
default: {
return state;
}
}
};
- μ€ν μ΄
: ν μ ν리μΌμ΄μ λΉ νλμ μ€ν μ΄λ₯Ό λ§λ€κ³ μ€ν μ΄ μμλ νμ¬ μ±μ μν, 리λμ, λ΄μ₯ ν¨μ λ±μ΄ λ€μ΄μλ€.
- λμ€ν¨μΉ
: μ€ν μ΄μ λ΄μ₯ν¨μ μ€ νλ. μ‘μ μ λ°μμν€λ μν μ νκ³ μ‘μ μ νλΌλ―Έν°λ‘ λ°λλ€.
νΈμΆμ νλ©΄ μ€ν μ΄λ 리λμ ν¨μλ₯Ό μ€νμμΌμ ν΄λΉ μ‘μ μ μ²λ¦¬νλ λ‘μ§μ΄ μλ€λ©΄ μ‘μ μ μ°Έκ³ ν΄μ μλ‘μ΄ μνλ₯Ό λ§λ λ€.
πλ°°μ΄ μ
리λμ€λ μ²μ보λλ° vue λ°°μΈ λ λ°°μ λ vuexλ λΉμ·νμ§λ§ λ μ΄λ €μ΄ κ² κ°λ€π νλ‘μ νΈμ μ¬μ©ν μ§ μ¬λΆμ μκ΄ μμ΄ λ°°μλλ©΄ μ’μ κ² κ°λ€.
6μ₯. 리λμ€ Β· GitBook
μ΄λ² μ±ν°μμ μμλ³Ό μ£Όμ λ 리λμ€(Redux) μ λλ€. 리λμ€λ 리μ‘νΈ μνκ³μμ κ°μ₯ μ¬μ©λ₯ μ΄ λμ μνκ΄λ¦¬ λΌμ΄λΈλ¬λ¦¬μ λλ€. 리λμ€λ₯Ό μ¬μ©νλ©΄ μ¬λ¬λΆμ΄ λ§λ€κ² λ μ»΄ν¬λνΈλ€μ μν κ΄
react.vlpt.us
'μΌμ > Today I Learned' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
2023.01.31 (0) | 2023.01.31 |
---|---|
2023.01.04 (0) | 2023.01.04 |
[λ°λΈμ½μ€ Day52] 2022.12.27 (0) | 2022.12.27 |
[λ°λΈμ½μ€ Day51] 2022.12.26 (0) | 2022.12.26 |
[λ°λΈμ½μ€ Day 50] 2022.12.23 (0) | 2022.12.23 |
πμ€λ λ°°μ΄ κ²
Redux
:Prop Drollingμ ν΄κ²°νκΈ° μν λΌμ΄λΈλ¬λ¦¬
리λμ€μμ μ¬μ©λλ ν€μλ
- μ‘μ
: μνμ λ³νκ° νμν λ μ‘μ μ λ°μ
μ‘μ κ°μ²΄μλ type νλκ° νμμ μ΄λ€.
- μ‘μ μμ±ν¨μ
: μ‘μ μ λ§λλ ν¨μ. νλΌλ―Έν°λ₯Ό λ°μμμ μ‘μ κ°μ²΄ ννλ‘ λ§λ€μ΄μ€λ€.
export const addTask = (content: string): Action => {
return {
type: "ADD_TASK",
payload: {
id: v4(),
content,
complete: false,
},
};
};
- 리λμ
:λ³νλ₯Ό μΌμΌν€λ ν¨μ
νμ¬ μν, μ λ¬λ°μ μ‘μ λ κ°μ§ νλΌλ―Έν°λ₯Ό λ°μμ μλ‘μ΄ μνλ₯Ό λ§λ€μ΄ λ°ννλ€. useReducerλ₯Ό μ¬μ©νλ κ²κ³Ό λκ°μ ννλ₯Ό κ°μ§κ³ μλ€.
export const tasks = (state: Task[] = [], action: Action) => {
switch (action.type) {
case "ADD_TASK": {
const newTask = action.payload;
return [...state, newTask];
}
case "UPDATE_TASK": {
const updateTask = action.payload;
return state.map((oldTask) =>
oldTask.id === updateTask.id ? updateTask : oldTask
);
}
case "REMOVE_TASK": {
const removedTask = action.payload;
return state.filter((task) => task.id !== removedTask.id);
}
default: {
return state;
}
}
};
- μ€ν μ΄
: ν μ ν리μΌμ΄μ λΉ νλμ μ€ν μ΄λ₯Ό λ§λ€κ³ μ€ν μ΄ μμλ νμ¬ μ±μ μν, 리λμ, λ΄μ₯ ν¨μ λ±μ΄ λ€μ΄μλ€.
- λμ€ν¨μΉ
: μ€ν μ΄μ λ΄μ₯ν¨μ μ€ νλ. μ‘μ μ λ°μμν€λ μν μ νκ³ μ‘μ μ νλΌλ―Έν°λ‘ λ°λλ€.
νΈμΆμ νλ©΄ μ€ν μ΄λ 리λμ ν¨μλ₯Ό μ€νμμΌμ ν΄λΉ μ‘μ μ μ²λ¦¬νλ λ‘μ§μ΄ μλ€λ©΄ μ‘μ μ μ°Έκ³ ν΄μ μλ‘μ΄ μνλ₯Ό λ§λ λ€.
πλ°°μ΄ μ
리λμ€λ μ²μ보λλ° vue λ°°μΈ λ λ°°μ λ vuexλ λΉμ·νμ§λ§ λ μ΄λ €μ΄ κ² κ°λ€π νλ‘μ νΈμ μ¬μ©ν μ§ μ¬λΆμ μκ΄ μμ΄ λ°°μλλ©΄ μ’μ κ² κ°λ€.
6μ₯. 리λμ€ Β· GitBook
μ΄λ² μ±ν°μμ μμλ³Ό μ£Όμ λ 리λμ€(Redux) μ λλ€. 리λμ€λ 리μ‘νΈ μνκ³μμ κ°μ₯ μ¬μ©λ₯ μ΄ λμ μνκ΄λ¦¬ λΌμ΄λΈλ¬λ¦¬μ λλ€. 리λμ€λ₯Ό μ¬μ©νλ©΄ μ¬λ¬λΆμ΄ λ§λ€κ² λ μ»΄ν¬λνΈλ€μ μν κ΄
react.vlpt.us
'μΌμ > Today I Learned' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
2023.01.31 (0) | 2023.01.31 |
---|---|
2023.01.04 (0) | 2023.01.04 |
[λ°λΈμ½μ€ Day52] 2022.12.27 (0) | 2022.12.27 |
[λ°λΈμ½μ€ Day51] 2022.12.26 (0) | 2022.12.26 |
[λ°λΈμ½μ€ Day 50] 2022.12.23 (0) | 2022.12.23 |