LVRS Storyboard Frame

backend/RouteMatcher.svx

Path: backend/RouteMatcher.svx

Last modified:

RouteMatcher

위치: backend/navigation/routematcher.h / backend/navigation/routematcher.cpp

RouteMatcher는 PageRouter 경로 정규화/일치 핫 경로를 C++로 이동하는 QML 싱글턴입니다.

목적

  • 경로 정규화에 일관된 규칙을 적용하십시오 (normalizePath).
  • 동적 세그먼트([id])와 리스트 세그먼트([...path])를 C++에서 매칭하십시오.
  • QML JS 루프에서 반복되는 문자열 분할/조인 오버헤드를 줄입니다.

API

  • normalizePath(path): string
    • 빈 입력을 /로 정규화하십시오.
    • 선도적인 /를 보장하십시오.
    • 루트(/)를 제외하고 뒤에 있는 /를 제거하십시오.
  • match(path, routePath): map
    • 반환:
      • matched: bool
      • params: map
    • 예:
      • ("/runs/42", "/runs/[id]") -> matched=true, params.id="42"
      • ("/logs/a/b", "/logs/[...path]") -> matched=true, params.path="a/b"

메모

  • PageRouter.qml는 RouteMatcher를 선호하며, 사용할 수 없을 경우 JS 대체 경로 경로를 유지합니다.
  • 매치 결과는 PageRouter 라우트-리졸브 캐시에 저장되어 반복 조회 비용을 추가로 절감합니다.