리액트에서 중요하게 다루는점은 아마 가상돔이겠지
리액트의 설명엔 이런문구가 있어
"가상돔과 실제돔을 비교해 변화된 부분만 교체된다"
이 말에 나는 큰 이상함을 느꼈단 말이야
리액트, 반응형이란건 변화를 감지해 변경이 일어나는거지
이 과정에 비교란 단어가 왜 들어가야 하냐는거야
ReactiveX 를 보면 변수를 구독한 후 변화가 되면 알림을 보내지
이 과정에서 비교는 필요가 없어
알림이 왔다면 이전상태가 어떻든 무조건 변화를 해야하니까
근데 왜 리액트는 "가상돔과 비교"란 단어를 써뒀을까
내 식견이 짧은걸지도 모르지만
리액트는 모든 돔을 트리를 타고 모든 노드를 다 비교하는 가짜 반응형,
진정한 반응형이 아니라고 생각한다
ㅇㅇ vue가 진짜 반응형임
vue도 버추얼돔 쓴다는데
리액트와 vue의 v-dom은 탄생 목적이 다름.
가짜라기보다는 vue, angular, svelte와 다른 전략을 쓰는것뿐
vue, angular, svelte는 각자 view model instance를 둬서 mutable한 object의 변화를 watching 함.
react는 상태 객체를 immutability라고 가정하고 shallow diff 검사로 변화 감지.
각자의 차이와 장단이 있지.
개인적으로 리액트의 아키텍쳐와 v-dom 전략이 지금같은 선언형 프로그래밍으로 발전시키는데 크게 일조했다고 생각.
누구 보라고 필독이라는거
반응형은 타겟기기에 따라서 달라지는게 반응형이지 가상돔이 어쩌고하는게 왜 가짜라는거
그건 반응형 웹. 내가 말하는건 반응형 프로그래밍
하나 건드리면 해당되는 돔 무조건 안바꾸는건 비효율적이라 그런거고 변경점이 리액티브하게 변경되는건 상태만 그렇게 하면 상관없잖아
보통 글쓴이가 말한 반응형 구현 전략을 많이 쓰긴하잖아. 그래서 좀 리액트를 햇갈려하는사람도 많고.
그냥 리액트 reconcile 과정이나 알아보셈 멀리 갈것도 없음 - dc App
vdom 이랑 리액티브는 그냥저냥 있는거고 리액트에서 말하는 변화 감지가 충분히 빠르다는 것은 트리 비교 알고리즘 복잡도를 최적화 하는걸 말하는거임 - dc App
리액티브랑 v dom은 따로 적용될 수 있는 개념임 당장 스벨트만 봐도 전략이 다르잖음 - dc App
그리고 님이 말하는 가짜 반응형이란것도 반응형임 변수 하나 구독하냐랑 자료구조를 구독하냐 차이인거 - dc App
그리고 애초에 side effect를 허용하는 반응형이면 값이 변하지 않아도 subscription이 돌도록 허용하잖음 님이 말하는 반응형이 너무 한정된 반응형임 - dc App
지금 말하는 반응형이 뭔지 모르겠음 리액트는 반응형이라고 생각함ㅇㅇ - dc App