[문의] [초판] p193 , p202 내용문의
Closed this issue · 1 comments
supersfel commented
우선 책을 너무 잘 읽고 있습니다. 좋은 책 써주셔서 감사합니다.
useState와 useEffect의 구현을 따라가며 예제를 해보고 있는데
const MyReact = function() {
const global = {}
let index = 0
function useState(initialState){
if(!global.states) {
global.states = []
}
const currentState = global.states[index] || initialState
global.states[index] = currentState
const setState = (function() {
//클로저로 index를 가둬두어서 동일한 index에 접근이 가능
let currentIndex = index
return function(value){
global.states[currentIndex] = value
//컴포넌트 렌더링이 들어가는 부분
}
})()
index = index + 1
return [currentState,setState]
}
const MyReact = (function () {
const global = {};
let index = 0;
function useEffect(callback, dependencies) {
const hooks = global.hooks;
let previouseDependencies = hooks[index];
let isDependenciesChanged = previouseDependencies
? dependencies.some(
(val, idx) => !Object.is(val, previouseDependencies[idx])
)
: true;
if (isDependenciesChanged) callback();
hooks[index] = dependencies;
index++;
}
return { useEffect };
})();
useEffect 구현 부분에만 즉시실행 함수로 감싸져 있는데 이유가 궁금합니다.
useState로 state를 만드는 부분에서는 스코프를 따로 만들 필요가 없어서일까요?