iPod Video White

๐Ÿ““ TIL

[220804] React Redux

k_m_jin 2022. 8. 4. 18:09

redux install

npm i react-redux
yarn add react-redux

store ์ƒ์„ฑ

import {createStore} from 'react';
const store = createStore();

Reducer

function reducer(state, action) {
	//state์˜ ๊ธฐ๋ณธ๊ฐ’
	if(state === undefined){
    	return {
        	number: 1,
        }
    }
    //๋ฐ์ดํ„ฐ์˜ ๋ถˆ๋ณ€์„ฑ์„ ์œ„ํ•œ ๋ณต์‚ฌ
    const newState = {...state};
    return newState
}

redux๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ 4๊ฐ€์ง€

import {Provider, useSelector, useDispatch, connect} from 'react-redux'
  • Provider
    • createStore ํ•œ ๊ฐ’์„ ๋„ฃ์–ด์ค˜์•ผํ•จ
export default function App(){
    return(
        <Provider store={store}>
            <Component/>
        </Provider>
    )
}
  • useSelector
    • state ๋ฅผ ๊ฐ€์ ธ์˜ฌ๋•Œ ์‚ฌ์šฉ
    • ์ธ์ˆ˜๋กœ ํ•จ์ˆ˜๋ฅผ ๋ฐ›์Œ ⇒ ํ•จ์ˆ˜๋Š” state ๊ฐ’์„ ์ธ์ˆ˜๋กœ ๋ฐ›์•„์„œ ์–ด๋–ค ๊ฐ’์„ ์‚ฌ์šฉํ•  ์ง€ ์ง€์ •ํ•˜๋ฉด ๋Œ
const number = useSelector(state => state.number)
  • useDispatch
    • action์„ ์ „๋‹ฌ
const dispatch = useDispatch()
dispatch({type: 'PLUS'}) 

 

์ฐธ์กฐ ์ƒํ™œ์ฝ”๋”ฉ react-redux 

๋ฐ˜์‘ํ˜•

'๐Ÿ““ TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[220821] useEffect  (0) 2022.08.21
[220807]nwitter  (0) 2022.08.07
[220731] React useMemo , useReducer  (0) 2022.07.31
[220729] ๋ฆฌ์•กํŠธ ์‹ค๊ฐ•  (0) 2022.07.29
[220728]  (0) 2022.07.29