728x90
반응형
- React 상태 관리
- useState Hook
함수형 컴포넌트에서 상태를 관리하는 가장 기본적인 방법.
컴포넌트 내에서 간단한 상태를 다룰 때 사용됩니다.
import React, { useState } from 'react';
function ExampleComponent() {
const [count, setCount] = useState(0);
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}
- useReducer Hook
복잡한 상태 로직을 다룰 때 유용.
컴포넌트 내에서 여러 상태를 관리하거나, 상태 갱신이 이전 상태에 의존적일 때 사용됩니다.
import React, { useReducer } from 'react';
function reducer(state, action) {
switch (action.type) {
case 'increment':
return { count: state.count + 1 };
case 'decrement':
return { count: state.count - 1 };
default:
throw new Error();
}
}
function Counter() {
const [state, dispatch] = useReducer(reducer, { count: 0 });
return (
<>
Count: {state.count}
<button onClick={() => dispatch({ type: 'decrement' })}>-</button>
<button onClick={() => dispatch({ type: 'increment' })}>+</button>
</>
);
}
- Context API
상태를 전역적으로 관리할 수 있도록 하는 React의 API.
여러 컴포넌트 간에 상태를 공유할 때 사용됩니다.
import React, { createContext, useContext, useState } from 'react';
const MyContext = createContext();
function MyProvider({ children }) {
const [myState, setMyState] = useState(initialState);
return (
<MyContext.Provider value={{ myState, setMyState }}>
{children}
</MyContext.Provider>
);
}
function useMyState() {
const context = useContext(MyContext);
if (!context) {
throw new Error('useMyState must be used within a MyProvider');
}
return context;
}
- Redux
상태 관리를 위한 라이브러리로, 컴포넌트의 상태를 중앙 집중적으로 관리.
큰 규모의 애플리케이션 또는 여러 컴포넌트 간에 상태를 효율적으로 관리할 때 사용됩니다.
// actions.js
export const increment = () => ({
type: 'INCREMENT',
});
export const decrement = () => ({
type: 'DECREMENT',
});
// reducers.js
const counter = (state = { count: 0 }, action) => {
switch (action.type) {
case 'INCREMENT':
return { count: state.count + 1 };
case 'DECREMENT':
return { count: state.count - 1 };
default:
return state;
}
};
export default counter;
// store.js
import { createStore } from 'redux';
import counter from './reducers';
const store = createStore(counter);
export default store;
// App.js
import React from 'react';
import { Provider } from 'react-redux';
import store from './store';
import Counter from './Counter';
function App() {
return (
<Provider store={store}>
<Counter />
</Provider>
);
}
export default App;
728x90
반응형
'📁 𝐫𝐮𝐧𝐭𝐢𝐦𝐞𝐄𝐧𝐯𝐢𝐫𝐨𝐧𝐦𝐞𝐧𝐭 > React.js' 카테고리의 다른 글
[React .hook] Why must we use 'useId( )'? (0) | 2024.02.16 |
---|---|
[React .hook] What is useId( ) ? (0) | 2024.02.16 |
[React] React's file structure (0) | 2024.02.15 |
[React] How to use React ? (0) | 2024.02.15 |
[React] What is React ? (0) | 2024.02.15 |