Redux
์๋ ๋ฆฌ๋์ค๋ฅผ ๋ฅ์คํธ์์ ์ฌ์ฉํ๋ ๊ฒ์ ์๋นํ ๋ณต์กํฉ๋๋ค.
next-redux-wrapper๋ฅผ ์ฌ์ฉํ๋ฉด ๋น๊ต์ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ค์นํด์ค์๋ค.
yarn add next-redux-wrapper๊ทธ๋ฆฌ๊ณ ๋ฃจํธ ๋๋ ํ ๋ฆฌ ์์ storeํด๋๋ฅผ ๋ง๋ ๋ค configureStore.jsํ์ผ์ ์์ฑํด์ฃผ์ธ์
๋ฒ์ ์ 6๋ฒ์ ์ ๋๋ค.
๊ธฐ๋ณธ์ ์ธ ํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
import { createWrapper } from "next-redux-wrapper";
const configureStore = () => {};
const wrapper = createWrapper(configureStore);
export default wrapper;
๋ค์์ ๋ฆฌ๋์ค์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ณผ ์ ์๋๋ก wrapper์์ ์ต์ ์ ์ฃผ๊ฒ ์ต๋๋ค.
const wrapper = createWrapper(configureStore, {
debug: process.env.NODE_ENV === "development",
});๋ค์์ _app.js๋ก ์ด๋ํด์ ์ ์ผ ์์ ์ปจํ ์ด๋๋ฅผ ๋ฆฌ๋์ค๋ก ๊ฐ์ธ์ฃผ๊ฒ ์ต๋๋ค.
์ฌ๋ฌ ์ปดํฌ๋ํธ์์ ๊ณตํต์ ์ผ๋ก ์ฐ์ด๋ ๋ฐ์ดํฐ๊ฐ ์๋๋ฐ,
์ปดํฌ๋ํธ๋ ๋ถ๋ฆฌ๊ฐ ๋์ด์๊ธฐ ๋๋ฌธ์ ๊ทธ ๋ฐ์ดํฐ๋ค์ ๋ถ๋ชจ์ปดํฌ๋ํธ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ์์์ผ๋ก ์ค์ผ ํฉ๋๋ค.
redux๋ ์ค์์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ์ปดํฌ๋ํธ๊ฐ ํ์๋ก ํ ๋ ๊ทธ ๋ฐ์ดํฐ๋ฅผ ๋ฟ๋ ค์ฃผ๋๋ฐ,
react์ ContextAPI, Redux , graphQL , MobX ๋ฑ์ด ์์ต๋๋ค.
๊ฐ๊ฐ์ ์ฅ๋จ์ ์ด ์๋๋ฐ
Redux๋ ์ฑ์ด ์์ ์ ์ด์ง๋ง, ์ฝ๋๋์ด ๋ง์ต๋๋ค.
MobX๋ ์ฝ๋๋์ ์ ์ง๋ง, ๋์ด๋๊ฐ ์๊ตฌ๋์ฃ ..
๊ฐ๋จํ ์์ ์ ContextAPI๋ฅผ ์ด์ฉํ๋ฉด ๋๋๋ฐ,
ContextAPI๋ฅผ ์ด์ฉํ๋ฉด ๋น๋๊ธฐ ์์ ์ ์ฒ๋ฆฌํ๊ธฐ์ ์์ด์ ์ด๋ ต๊ธฐ ๋๋ฌธ์
์ด๋ฒ์๋ Redux๋ฅผ ์ฌ์ฉํด๋ณด๊ฒ ์ต๋๋ค.
์ ์ฉ๋ฒ
Next์์๋ ์ฐ๋ฆฌ๊ฐ ์๋ ๋ฆฌ๋์ค์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ํตํด ์ ์ฉ์ํต๋๋ค.
storeํด๋๋ฅผ ์์ฑํ๋ค configureStoreํ์ผ์ ๋ง๋ค๊ณ ๋ค์๊ณผ ๊ฐ์ด ์์ฑํด์ฃผ์ธ์
๊ทธ๋ฆฌ๊ณ app.js ํ์ผ์ ๋ค์ด๊ฐ์_app ์ปดํฌ๋ํธ๋ฅผ ๊ฐ์ธ์ค๋๋ค.
๋ฆฌ๋์ค ์ ์ฉ์ด ์๋ฃ๋์์ต๋๋ค.
๋ฆฌ๋์ค์ ์ก์ ํจ์์ ๋ฆฌ๋์๋ฅผ ๋ง๋ค์ด ๋ณผ๊น์?
๊ฐ๋ฐ์ ๋๊ตฌ
๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ๋ค์ด๋ฐ์ ๋ค ์คํ ์ด์ ์ ์ฉํด์ฃผ๋ฉด ๋ฉ๋๋ค.
๋ฏธ๋ค์จ์ด๋ ๋์ค์ ์ ์ฉ์ํค๊ธฐ ์ํ ๊ณต๊ฐ์ ๋ง๋ค์ด ๋ ๊ฒ์ ๋๋ค.

๊ผญ ๋ฆฌ๋์์์ ๋ถ๋ณ์ฑ์ ์ง์ผ์ค์ผ๋ง ํ์คํ ๋ฆฌ๊ฐ ์ ์ง๋์ด ๋์ํ ์์๋๊ฒ์ ๋๋ค.
๋ฆฌ๋์๋ถํด
์ปดํฌ๋ํธ๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ ์postReducer๋ ๊ตฌ์ฑํด๋ณผ๊ฒ์
๋๋ฏธ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์์ต๋๋ค.
Last updated
Was this helpful?