🌐 Web/Redux

02. Redux가 없는 애플리케이션

dlalwl_jpg 2022. 9. 3. 19:41

redux의 필요성을 느껴보기 위해서 먼저 redux 없이 애플리케이션을 만들어보자.

 

새로운 폴더 redux를 만들어 react 환경을 구축하고,

public 폴더에 without-redux.html를 만들어 다음과 같이 코드를 작성하였다.

 

without-redux.html

<html>
    <body>
        <style>
            .container{
                border:5px solid black;
                padding:10px;
            }
        </style>
        <dix id="red"></dix>
        <dix id="green"></dix>
        <dix id="blue"></dix>
        <script>
function red(){
    document.querySelector('#red').innerHTML = `
        <div class="container" id="component_red">
            <h1>red</h1>
            <input type="button" value="fire" onclick="
            document.querySelector('#component_red').style.backgroundColor = 'red';
            document.querySelector('#component_green').style.backgroundColor = 'red';
            document.querySelector('#component_blue').style.backgroundColor = 'red';
            ">
        </div>
    `;
}
red();
function green(){
    document.querySelector('#green').innerHTML = `
        <div class="container" id="component_green">
            <h1>green</h1>
            <input type="button" value="fire" onclick="
            document.querySelector('#component_red').style.backgroundColor = 'green';
            document.querySelector('#component_green').style.backgroundColor = 'green';
            document.querySelector('#component_blue').style.backgroundColor = 'green';
            ">
        </div>
    `;
}
green();
function blue(){
    document.querySelector('#blue').innerHTML = `
        <div class="container" id="component_blue">
            <h1>blue</h1>
            <input type="button" value="fire" onclick="
            document.querySelector('#component_red').style.backgroundColor = 'blue';
            document.querySelector('#component_green').style.backgroundColor = 'blue';
            document.querySelector('#component_blue').style.backgroundColor = 'blue';
            ">
        </div>
    `;
}
blue();
        </script>
    </body>

</html>

결과화면

- red의 fire버튼을 눌렀을 경우

- green의 fire버튼을 눌렀을 경우

- blue의 fire 버튼을 눌렀을 경우


 document.querySelector('#component_red').style.backgroundColor = 'red';
 document.querySelector('#component_green').style.backgroundColor = 'red';
 document.querySelector('#component_blue').style.backgroundColor = 'red';

우리는 위 코드처럼 바꿀 색깔의 fire 버튼을 누르면 색깔 함수를 하나씩 작성하여 색을 바꾸었다.

만약 색깔 함수가 1000개가 있다면?

우리가 신경써야 할 함수는 기하급수적으로 늘어나게 된다.

그렇다면 redux를 이용하면 어떻게 될까?