LVRS Storyboard Frame
backend/RouteMatcher.svx
Path: backend/RouteMatcher.svx
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: boolparams: 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라우트-리졸브 캐시에 저장되어 반복 조회 비용을 추가로 절감합니다.