작성
·
310
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 인턴이에요.
computed 함수는 여러 종속성 변수를 가질 수 있으며, 그 중 어떠한 변수도 변경되지 않으면 이전에 계산된 값을 재사용합니다. 따라서, 24강에서의 computed 함수에서도 todos와 searchText 변수 중 어느 하나라도 변경되지 않으면 이전에 계산된 값을 사용합니다.
하지만, todos의 경우에는 return 구문 내에서 변경되므로, todos 값이 변경됐을 경우 computed 함수가 한 번 더 호출됩니다. 이후 searchText 값이 변경됐을 경우 computed 함수가 다시 호출되고, 이전과 같은 과정을 반복하게 됩니다.
결론적으로, 24강에서의 computed 함수는 todos와 searchText 두 변수 중 어느 하나라도 변경될 때마다 실행됩니다.
감사합니다.