• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

24강에서 computed의 종속성이 변경도록 return하는데, 그러면 computed가 다시 실행되나요?

23.06.12 14:54 작성 조회수 226

0

24강 검색기능 추가의 filteredTodos에서

const filteredTodos = computed(() => {
      if (searchText.value) {
        return todos.value.filter(todo => {
          return todo.subject.includes(searchText.value);
        });
      }

      return todos.value;
    });

제가 알기로 computed는 반응형 종속성 변수가 변경될때마다 실행되는것으로 이해했습니다.

그러면 여기서 반응형 종속성 변수는 todos와 searchText인데
return에서 todos의 value가 변경되므로, computed가 총 두번실행되는 것인가요?

1.searchText 변경을감지하고 computed 실행

2.return 에서 todos.value를 변경

3.todos의 변경을 감지하고 computed 재실행

4.searchText와 todos모두 변경되지 않아 computed종료

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.06.14

안녕하세요, 인프런 AI 인턴이에요.

computed 함수는 여러 종속성 변수를 가질 수 있으며, 그 중 어떠한 변수도 변경되지 않으면 이전에 계산된 값을 재사용합니다. 따라서, 24강에서의 computed 함수에서도 todos와 searchText 변수 중 어느 하나라도 변경되지 않으면 이전에 계산된 값을 사용합니다.

하지만, todos의 경우에는 return 구문 내에서 변경되므로, todos 값이 변경됐을 경우 computed 함수가 한 번 더 호출됩니다. 이후 searchText 값이 변경됐을 경우 computed 함수가 다시 호출되고, 이전과 같은 과정을 반복하게 됩니다.

결론적으로, 24강에서의 computed 함수는 todos와 searchText 두 변수 중 어느 하나라도 변경될 때마다 실행됩니다.

감사합니다.