akjfal

10/29 본문

하루의 이슈

10/29

akjfal 2019. 10. 30. 22:06

var 글로벌

const let 은 블럭스코프 한정자

settimeout은 js자체의 스펙이아니다 범위 밖이다

실행전과 실행후 state가 완전히 같다

새로운 친구를 만들어야한다

...state

list: [...state.list, action.payload]

redux자체가 얕은 비교만 한다. 

maptoprops를 하게되면 state가 바뀌었다고 생각하면 전부다 호출한다

hook자체도 렌더링을 시도할때마다 다시안하려고 일종의 기법

rendering을 다시 일으키는 경우

렌더링 trigger

props변경 : 입력이 바뀐경우

redux : props바꿔주는 애들(state2props, dispatch2props)

hook : state(setA)

 

useEffect(()=>{}) -> 렌더링을 트리거하는 코드가 생기면 렌더링이 다시할때마다 매번실행이된다 -> 다시 렌더링 무한루프

사용의 이유 - 실행 시점

: useEffect의 시점 - 

document.title = a

return a

브라우저에서 document를 하는동안 return을 할 수 없다

useEffect(()=>~~)

일단 브라우저 화면에 바뀐것들은 한다음 일을 한다

useEffect를 사용하다가 문제가 되며 ㄴuseLayoutEffect를 사용해봐라

useContext와 redux의 차이

용도상의차이는 비슷하다

둘러싸둔 자식들이 모두 context를 가져다가 사용할 수 있는 상황이된다

hook에서의 reducer : useState를 redux사용하듯이 무슨일이 일어나면 알려주기만 하고 한곳에서 처리를한다 - 복잡한 state관리에서 사용

리덕스를 사용하고있는데 useState(useSelector를 하고있다 이상하다 - redux에서 가져오는 것 자체가 state다 state로 관리할 필요가 없다.

트리거를 할 수 있는 친구가 setState, useSelector에서 글로벌한 redux가 바뀌면 (state => state....)에서 state가 다르면 렌더링을 다시한다

초기값이 일단 계속 바뀐다. 아무런 영향은 없을 것이다.

but useSelector를 매번 실행한다.

useState는 내부적으로 사용 

component입장에서는 트리거는 모두 동등하다

redux의 action으로 변경시켜야한다.

초기화값이 안된것은 useEffect는 한번 렌더링이 된다음에 시도를 할것이다.

그렇지만 callback 이 기다리진 안는다.

setName, setCount를 붙여놓으면 렌더링을 한번만 한다.

자바스크립트는 함수가 한번시작하면 끝날때까지 다른일이 중간에 못끼여든다.

끝날때까지 set이 두번 실행된다.

중간에 못끼여든다. set이 있다고 함수가 중간에 멈추지 못한다.

한번만 렌더링을 다시한다.

async함수는 그냥 종료가 되어버린다.

무슨이야기냐 하면 conat fun = async()=>{setState await aaa(); setState} fun()을 호출하게되면 리턴값은 코드의 끝까지 실행과 무관하게 그냥 리턴이된다.

await가 중간에 존재하기 때문에 함수자체는 그냥 중간에 종료가 되어버린다.

즉 안에 들어잇는 setA를 같은 할일에서 하지 않고 다른할일로 구분이되어버린다.

렌더링이 한번되었을때 함수 호출이 끝날때까지 한번으로 친다.

비동기로 가게되면 쪼개진다. 

 

'하루의 이슈' 카테고리의 다른 글

10/31  (0) 2019.10.31
10/30  (0) 2019.10.31
10/15  (0) 2019.10.30
10/14  (0) 2019.10.30
9/26  (0) 2019.10.30
Comments