React intro
React를 배워보자
리엑트 프로젝트 시작하기
리엑트 프로젝트를 어떻게 구성하는지 기본 사용방법들을 알아보자
사용기술
-
react
-
style component
-
redux
-
router-dom
-
Link
-
NavLink
-
반응형 웹디자인 (데스크탑, 모바일)
프로젝트 구조
Decide4Me/
├── public/
│ ├── index.html
│ └── ...
├── src/
│ ├── assets/
│ │ ├── images/
│ │ └── styles/
│ │ ├── global.css
│ │ └── ...
│ ├── components/
│ │ ├── Header.js
│ │ ├── Navbar.js
│ │ ├── PostList.js
│ │ └── ...
│ ├── pages/
│ │ ├── LoginPage.js
│ │ ├── SignupPage.js
│ │ ├── MainPage.js
│ │ ├── UserEditPage.js
│ │ └── ...
│ ├── redux/
│ │ ├── store.js
│ │ ├── actions/
│ │ ├── reducers/
│ │ └── ...
│ ├── styles/
│ │ ├── GlobalStyles.js
│ │ ├── themes.js
│ │ └── ...
│ ├── App.js
│ ├── index.js
│ └── ...
├── package.json
└── ...
Redux 기본 사용법
https://redux.js.org/tutorials/typescript-quick-start
Redux는 JavaScript 앱의 상태를 중앙에서 관리하는 라이브러리입니다. Redux를 사용하면 상태의 일관성을 유지하고, 상태 변화를 예측 가능하게 하며, 애플리케이션을 디버깅하기 쉬워집니다. 아래는 Redux의 기본 사용법에 대한 정리입니다.
설치
Redux와 React-Redux를 설치합니다
npm install redux react-redux
기본 개념
Redux는 세 가지 핵심 요소로 구성됩니다:
- 스토어(Store): 애플리케이션의 상태를 보관합니다.
- 액션(Action): 상태에 어떤 변화가 일어나야 하는지 설명하는 객체입니다.
- 리듀서(Reducer): 액션에 따라 상태를 업데이트하는 함수입니다.
스토어 생성
import { createStore } from 'redux';
import rootReducer from './reducers';
const store = createStore(rootReducer);
액션
액션은 상태에 어떤 변화가 일어나야 하는지 설명하는 객체입니다. 액션 객체는 반드시 type 속성을 가져야 합니다.
// 액션 타입 정의
const INCREMENT = 'INCREMENT';
const DECREMENT = 'DECREMENT';
// 액션 생성자 함수
const increment = () => ({ type: INCREMENT });
const decrement = () => ({ type: DECREMENT });
리듀서
리듀서는 상태와 액션을 받아서 새로운 상태를 반환하는 함수입니다.
const initialState = { count: 0 };
const counterReducer = (state = initialState, action) => {
switch (action.type) {
case INCREMENT:
return { count: state.count + 1 };
case DECREMENT:
return { count: state.count - 1 };
default:
return state;
}
};
export default counterReducer;
리액트와 연결
React-Redux를 사용하여 React 컴포넌트를 Redux 스토어와 연결할 수 있습니다.
import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import { createStore } from 'redux';
import counterReducer from './reducers';
import App from './App';
const store = createStore(counterReducer);
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root')
);
React 컴포넌트에서 Redux 사용
React 컴포넌트에서 Redux 상태와 액션을 사용하려면 useSelector와 useDispatch 훅을 사용합니다.
import React from 'react';
import { useSelector, useDispatch } from 'react-redux';
import { increment, decrement } from './actions';
const Counter = () => {
const count = useSelector(state => state.count);
const dispatch = useDispatch();
return (
<div>
<h1>{count}</h1>
<button onClick={() => dispatch(increment())}>+</button>
<button onClick={() => dispatch(decrement())}>-</button>
</div>
);
};
export default Counter;
결론
Redux를 사용하면 애플리케이션의 상태를 효율적으로 관리할 수 있습니다. Redux의 핵심 개념인 스토어, 액션, 리듀서를 이해하고, React-Redux를 통해 React 컴포넌트와 연결하는 방법을 알면 Redux를 쉽게 사용할 수 있습니다.