derived()

반응형
derived<T>(compute: () => T): ReadonlyAccessor<T>

다른 상태로부터 계산되는 읽기 전용 값을 만듭니다.

설명

계산식을 받아 읽기 전용 접근자를 돌려줍니다. 계산 중에 읽은 상태가 자동으로 의존성이 되고, 그 중 하나라도 바뀌면 다음 읽기 때 새로 계산합니다. 아무도 읽지 않는 동안에는 계산하지 않습니다.

매개변수

  • compute — 값을 돌려주는 순수 함수. 안에서 .set()을 호출하지 마세요.

반환값

.set()이 없는 접근자입니다. derived끼리 겹쳐 쌓아도 되고, 의존성 그래프가 깊어져도 실제 계산은 값이 바뀐 경로에서만 일어납니다.

예제

const items = state([]);
const visible = derived(() => items().filter((it) => !it.hidden));
const count = derived(() => visible().length);

주의

계산식 안에서 비동기 작업을 시작하지 마세요. 언제 몇 번 실행될지 보장되지 않습니다. 비동기는 effect의 몫입니다.