-
Flux, Virtual Dom 간단 메모Web Dev/3. React 관련 2021. 4. 26. 23:46728x90
Flux
facebook.github.io/flux/docs/in-depth-overview
작년에는 이글이 이해가 안되었는데, 어쩌면 올해는 이해되리라는 마음으로 다시 읽어본다.
글 요약
- Flux는 Facebook에서 client-side web application을 만들기 위해서 사용하는 구조이다.
- 이건 리액트의 composable(compose 하는, 그러니까 build 할수있는 그런느낌) 한 view component를 보완하는 느낌인데, 한방향의 데이터 흐름을 통해서 이를 할수 잇게 한다.
- Flux 구조는 3가지 큰 부분을 가진다
- Dispatcher
- Store
- views(React Components)
- 추가적으로 action creators라는 dispatcher helper methods(앱내에서 일어날 수 있는 모든 changes를 설명하는것)
- Support a semantic API that describes all changes that are possible in the application
- 위의 개념은 Model-View-Controller(MVC) 랑 헷갈리면 안되는데, 일단 Flux application에도 Controller가 있다. 그런데 대신 controller-views이다.
- 모든 데이터는 dispatcher로 흘러가는데, 이때 dispatcher는 central hub로 생각하면 된다.
- 액션은 dispatcher에 제공되는데, 이때 action creator method를 이용해서 제공된다.
- dispatcher는 callback함수가 실행되도록 하는데, 이건 store가 dispatcher랑 callback 같이 등록을 한다.
www.youtube.com/watch?v=RbgU-zvbX1o
Virtual Dom
reactjs.org/docs/faq-internals.html
React의 Reconciliation은 어떤 변경에 대한 전/후 엘리먼트 트리를 비교(Diff)하여 갱신이 필요한 부분만을 찾아 업데이트하는 것을 의미한다. React는 렌더링에서 Reconciliation 작업을 선행하기 때문에 플랫폼 UI에 대한 제어를 최소화 시키는 것이다(보통 UI 제어 비용은 비싸기 때문이다). 즉 브라우저에서 DOM에 대한 제어를 최소화시키는 것이다.
'Web Dev > 3. React 관련' 카테고리의 다른 글
useEffect 내에서 state를 변화하고, 내부에서 함수를 호출했을때, 왜 변화한 state가 보이지 않는가? (0) 2021.05.19 React관련 싹 훑기(1) - Complete Intro to React v6 (0) 2021.05.17 Next.js Incremental Static Regeneration 알게 된것! Revalidate = timeout (1) 2021.03.15 React Code splitting with lazy and suspense (0) 2021.02.04 React Hooks - useRef 사용법 (0) 2021.02.04