• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

스벨트 반응성에 대해 질문드립니다!

22.06.27 18:02 작성 조회수 246

1

안녕하세요 todo예제 진행하면서 궁금한 점 질문드립니다.

강의영상을 보면서 사진과 같이 코드를 작성해 보았습니다.

스벨트가 반응성을 보이기 위해서 $todos=$todos 자기자신을 재할당 해야한다고 이해하였는데 궁금한 점이 있어 질문드립니다!

1. 리액트에서는 재렌더링을 위해서 상태값을 불변성을 지켜주면서 업데이트를 했는데 스벨트의 반응성의 경우 단순하게 재할당만해도 반응성(재렌더링?)이 일어나는것인가요?

추가적으로 스벨트가 반응성을 감지하는 원리 같은 것이 있을까요?

 

2. $todos=$todos 자기자신에게 재할당하는 코드가 익숙치가 않아서 스프레드 연산자로 불변성을 지켜주는 로직으로 작성해보았는데 이 부분이 그냥 let 변수에 재할당하는 것보다 메모리 효율 측면에서 불리할까요?

 

감사합니다.

답변 1

답변을 작성해보세요.

0

pumpkin 님 안녕하세요.😊

리액트나 뷰는 가상 돔을 사용해 런타임에서 상태를 비교하고 반응성을 사용하지만,

스벨트는 가상 돔 없이 컴파일 과정에서 할당 연산자가 사용된 부분의 상태에서 반응성을 사용합니다.

'어떤 방식이 더 좋다'고 단정할 수는 없고 나름의 장단점이 있습니다.

그리고 분명히 서로 동작 원리가 다릅니다.

그래서 되도록 스벨트의 패턴에 맞게 작성하시는 걸 권장하지만,

성능 차이는 거의 없을테니 첨부된 예제처럼 전개 연산자로 작성하셔도 문제는 없을 듯합니다.