juni
리액트 redux 간단 학습 본문
import { useSelector, useDispatch } from "react-redux";
import { addNumber, removeNumber } from "./redux/slices/counterSlice";
import { useState } from "react";
const App = () => {
const [count, setCount] = useState(0);
const counterReducer = useSelector((state) => state.counter);
const dispatch = useDispatch();
return (
<div>
{counterReducer.number} <br />
<input
type="number"
value={count}
onChange={(e) => {
setCount(+e.target.value);
}}
/>
<button
onClick={() => {
dispatch(addNumber(count));
}}
>
더하기
</button>
<button
onClick={() => {
dispatch(removeNumber(count));
}}
>
빼기
</button>
</div>
);
};
export default App;
import { createSlice } from "@reduxjs/toolkit";
const initialState = {
number: 0,
};
const counterSlice = createSlice({
name: "counter",
initialState,
reducers: {
addNumber: (state, action) => {
state.number = state.number + action.payload;
},
removeNumber: (state, action) => {
state.number = state.number - action.payload;
},
},
});
export const { addNumber, removeNumber } = counterSlice.actions;
export default counterSlice.reducer;
import { configureStore } from "@reduxjs/toolkit";
import counterSlice from "../slices/counterSlice";
const store = configureStore({
reducer: {
counter: counterSlice,
},
});
export default store;
'CS' 카테고리의 다른 글
json-server , axios (0) | 2024.06.11 |
---|---|
Promise , HTTP (0) | 2024.06.10 |
Router , styled-components (0) | 2024.05.23 |
State, Layout Component (0) | 2024.05.15 |
Component , JSX , props (0) | 2024.05.14 |