ctx.route

Informasi pencocokan route saat ini, sesuai dengan konsep route React Router, untuk mendapatkan konfigurasi route yang cocok saat ini, parameter, dll. Biasanya digunakan dengan ctx.router, ctx.location.

Skenario Penggunaan

SkenarioDeskripsi
JSBlock / JSFieldRender bersyarat berdasarkan route.pathname atau route.params, menampilkan identifier halaman saat ini
Aturan Linkage / Event FlowMembaca parameter route (seperti params.name) untuk cabang logika atau diteruskan ke sub-komponen
Navigasi ViewInternal membandingkan ctx.route.pathname dengan path target, menentukan apakah memicu ctx.router.navigate

Perhatian: ctx.route hanya tersedia pada environment RunJS yang memiliki konteks route (seperti JSBlock dalam halaman, halaman Flow, dll.); pada konteks pure backend atau tanpa route (seperti workflow) mungkin kosong.

Definisi Tipe

type RouteOptions = {
  name?: string;   // Identifier unik route
  path?: string;   // Template route (seperti /admin/:name)
  params?: Record<string, any>;  // Parameter route (seperti { name: 'users' })
  pathname?: string;  // Path lengkap route saat ini (seperti /admin/users)
};

Field Umum

FieldTipeDeskripsi
pathnamestringPath lengkap route saat ini, sama dengan ctx.location.pathname
paramsRecord<string, any>Parameter dinamis yang di-parse dari template route, seperti { name: 'users' }
pathstringTemplate route, seperti /admin/:name
namestringIdentifier unik route, sering digunakan pada skenario multi-tab, multi-view

Hubungan dengan ctx.router, ctx.location

TujuanPenggunaan yang Direkomendasikan
Membaca path saat inictx.route.pathname atau ctx.location.pathname, keduanya konsisten saat cocok
Membaca parameter routectx.route.params, seperti params.name merepresentasikan UID halaman saat ini
Navigasictx.router.navigate(path)
Membaca query parameter, statectx.location.search, ctx.location.state

ctx.route lebih fokus pada "konfigurasi route yang cocok", ctx.location lebih fokus pada "posisi URL saat ini", keduanya bersama dapat mendeskripsikan status route saat ini secara lengkap.

Contoh

Membaca pathname

// Menampilkan path saat ini
ctx.message.info('Halaman saat ini: ' + ctx.route.pathname);

Membuat Cabang Berdasarkan params

// params.name biasanya adalah UID halaman saat ini (seperti identifier halaman flow)
if (ctx.route.params?.name === 'users') {
  // Eksekusi logika tertentu di halaman manajemen user
}

Tampilan di Halaman Flow

<div>
  <h1>Halaman saat ini - {ctx.route.pathname}</h1>
  <p>Identifier route: {ctx.route.params?.name}</p>
</div>

Terkait

  • ctx.router: Navigasi route, setelah ctx.router.navigate() mengubah path, ctx.route akan ikut update
  • ctx.location: Posisi URL saat ini (pathname, search, hash, state), digunakan dengan ctx.route