리액트 useState 동작방식 연습중인데 

values는 살아있으니까 c에서 3을 뱉어야 하지않냐

왜 2를 뱉는거냐


const store = (function () {
let values = [];

function useState(initialValue) {
function setValue(newValue) {
values[0] = newValue;
}

return [values[0] || initialValue, setValue];
}

function render(Component) {
const c = Component();
c.render();
return c;
}

return {
useState,
render,
};
})();

function Component() {
const [count, setCount] = store.useState(1);

return {
render: () => console.log(count),
click: () => setCount(count + 1),
};
}

const a = store.render(Component); //1로 초기화
a.click(); // 2로 증가
const b = store.render(Component); // 업데이트된 2를 내보냄
a.click();
const c = store.render(Component);