logologo
시작
가이드
개발
플러그인
API
홈
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
시작
가이드
개발
플러그인
API
홈
logologo
RunJS 개요
모듈 가져오기
컨테이너 내 렌더링

전역 변수

window
document
navigator

ctx

ctx.blockModel
ctx.collection
ctx.collectionField
ctx.dataSource
ctx.dataSourceManager
ctx.element
ctx.exit()
ctx.exitAll()
ctx.filterManager
ctx.form
ctx.getModel()
ctx.getValue()
ctx.getVar()
ctx.i18n
ctx.importAsync()
ctx.initResource()
ctx.libs
ctx.location
ctx.logger
ctx.makeResource()
ctx.message
ctx.modal
ctx.model
ctx.notification
ctx.off()
ctx.on()
ctx.openView()
ctx.render()
ctx.request()
ctx.requireAsync()
ctx.resource
ctx.route
ctx.router
ctx.setValue()
ctx.sql
ctx.t()
ctx.view
Previous Pagectx.resource
Next Pagectx.router
AI 번역 알림

이 문서는 AI에 의해 번역되었습니다. 정확한 정보는 영어 버전을 참조하세요.

#ctx.route

현재 라우트 매칭 정보이며, React Router의 route 개념과 대응됩니다. 현재 매칭된 라우트 설정, 파라미터 등을 가져오는 데 사용됩니다. 보통 ctx.router, ctx.location과 함께 사용됩니다.

#적용 시나리오

시나리오설명
JSBlock / JSFieldroute.pathname 또는 route.params에 따라 조건부 렌더링을 수행하거나 현재 페이지 식별자를 표시합니다.
연동 규칙 / 이벤트 흐름라우트 파라미터(예: params.name)를 읽어 로직 분기를 처리하거나 하위 컴포넌트에 전달합니다.
뷰 내비게이션내부적으로 ctx.route.pathname과 대상 경로를 비교하여 ctx.router.navigate 트리거 여부를 결정합니다.

주의: ctx.route는 라우트 컨텍스트가 존재하는 RunJS 환경(페이지 내 JSBlock, 워크플로우 페이지 등)에서만 사용할 수 있습니다. 순수 백엔드나 라우트가 없는 컨텍스트(예: 백그라운드 워크플로우)에서는 값이 비어 있을 수 있습니다.

#타입 정의

type RouteOptions = {
  name?: string;   // 라우트 고유 식별자
  path?: string;   // 라우트 템플릿 (예: /admin/:name)
  params?: Record<string, any>;  // 라우트 파라미터 (예: { name: 'users' })
  pathname?: string;  // 현재 라우트의 전체 경로 (예: /admin/users)
};

#주요 필드

필드타입설명
pathnamestring현재 라우트의 전체 경로이며, ctx.location.pathname과 일치합니다.
paramsRecord<string, any>라우트 템플릿에서 파싱된 동적 파라미터입니다 (예: { name: 'users' }).
pathstring라우트 템플릿입니다 (예: /admin/:name).
namestring라우트 고유 식별자로, 주로 다중 탭이나 다중 뷰 시나리오에서 사용됩니다.

#ctx.router, ctx.location과의 관계

용도권장 사용법
현재 경로 읽기ctx.route.pathname 또는 ctx.location.pathname, 매칭 시 두 값은 동일합니다.
라우트 파라미터 읽기ctx.route.params, 예: 현재 페이지 UID를 나타내는 params.name.
내비게이션 이동ctx.router.navigate(path)
쿼리 파라미터, state 읽기ctx.location.search, ctx.location.state

ctx.route는 '매칭된 라우트 설정'에 중점을 두고, ctx.location은 '현재 URL 위치'에 중점을 둡니다. 두 가지를 함께 사용하여 현재 라우트 상태를 완전하게 설명할 수 있습니다.

#예시

#pathname 읽기

// 현재 경로 표시
ctx.message.info('현재 페이지: ' + ctx.route.pathname);

#params에 따른 분기 처리

// params.name은 보통 현재 페이지 UID(예: 워크플로우 페이지 식별자)입니다.
if (ctx.route.params?.name === 'users') {
  // 사용자 관리 페이지에서 특정 로직 실행
}

#워크플로우 페이지에서 표시

<div>
  <h1>현재 페이지 - {ctx.route.pathname}</h1>
  <p>라우트 식별자: {ctx.route.params?.name}</p>
</div>

#관련 문서

  • ctx.router: 라우트 내비게이션. ctx.router.navigate()로 경로가 변경되면 ctx.route도 그에 따라 업데이트됩니다.
  • ctx.location: 현재 URL 위치(pathname, search, hash, state)이며, ctx.route와 함께 사용됩니다.