본문으로 건너뛰기

인터페이스: VirtualRowProps<TKey>

정의 위치: packages/db/src/virtual-props.ts:57

TanStack DB 컬렉션의 모든 행에서 사용할 수 있는 가상 속성입니다.

이러한 속성은 다음과 같습니다.

  • 계산됩니다(데이터 모델에 저장되지 않음)
  • 읽기 전용입니다(직접 뮤테이션할 수 없음)
  • 쿼리(WHERE, ORDER BY, SELECT)에서 사용할 수 있습니다
  • 행을 전개할 때 포함됩니다(...user)

예제

// Accessing virtual properties on a row
const user = collection.get('user-1')
if (user.$synced) {
console.log('No pending local optimistic writes for this row')
}
if (user.$origin === 'local') {
console.log('Created/modified locally')
}
// Using virtual properties in queries
const ordersWithoutLocalWrites = createLiveQueryCollection({
query: (q) => q
.from({ order: orders })
.where(({ order }) => eq(order.$synced, true))
})

타입 매개변수

TKey

TKey 확장 string | number = string | number

행 키의 타입입니다(문자열 또는 숫자).

속성

$collectionId

readonly $collectionId: string;

정의 위치: packages/db/src/virtual-props.ts:101

이 행이 생성된 원본 컬렉션의 ID입니다.

조인에서는 각 행이 어느 컬렉션에서 왔는지 식별하는 데 도움이 됩니다. 라이브 쿼리 컬렉션의 경우 업스트림 컬렉션의 ID입니다.


$key

readonly $key: TKey;

정의 위치: packages/db/src/virtual-props.ts:93

행의 키(기본 식별자)입니다.

collection.config.getKey(row)이 반환하는 동일한 값입니다. 프로젝션이나 계산에서 키가 필요할 때 유용합니다.


$origin

readonly $origin: VirtualOrigin;

정의 위치: packages/db/src/virtual-props.ts:85

현재 클라이언트의 관점에서 이 행에 대한 마지막 확인된 변경의 출처입니다.

  • 'local': 변경 사항이 이 클라이언트에서 발생했습니다
  • 'remote': 변경 사항이 동기화를 통해 수신되었습니다

로컬 전용 컬렉션에서는 항상 'local'입니다. 라이브 쿼리 컬렉션에서는 소스 컬렉션에서 전달됩니다.


$synced

readonly $synced: boolean;

정의 위치: packages/db/src/virtual-props.ts:74

이 행에 현재 보류 중인 로컬 낙관적 쓰기가 없는지 여부입니다.

  • true: 현재 이 행에 영향을 주는 보류 중인 로컬 낙관적 뮤테이션이 없습니다
  • false: 현재 이 행에 영향을 주는 하나 이상의 보류 중인 로컬 낙관적 뮤테이션이 있습니다

이는 로컬 뮤테이션 상태입니다. 백엔드가 행을 업로드했거나, 확인했거나, 다시 읽었다는 것을 증명하지는 않습니다. 백엔드에서 확인된 상태가 필요한 경우, 해당 백엔드 관찰이 발생할 때까지 뮤테이션 함수를 보류 상태로 유지하거나 어댑터별 상태를 노출해야 합니다.

로컬 전용 컬렉션(동기화 없음)에서는 항상 true입니다. 라이브 쿼리 컬렉션에서는 소스 컬렉션에서 전달됩니다.