ctx.router
Instance route dựa trên React Router, dùng để điều hướng bằng code trong RunJS. Thường được dùng kết hợp với ctx.route, ctx.location.
Kịch bản áp dụng
Lưu ý:
ctx.routerchỉ khả dụng trong môi trường RunJS có ngữ cảnh route (như JSBlock trong page, page Flow, luồng sự kiện, v.v.); trong các ngữ cảnh không route hoặc backend thuần túy (như workflow) có thể trống.
Định nghĩa kiểu
Router đến từ @remix-run/router, trong RunJS thực hiện các thao tác điều hướng như chuyển hướng, quay lại, refresh qua ctx.router.navigate().
Phương thức
ctx.router.navigate()
Chuyển đến path đích, hoặc thực hiện back/refresh.
Chữ ký:
Tham số:
to: Path đích (string), vị trí tương đối lịch sử (number, như-1biểu thị back) hoặcnull(refresh page hiện tại)options: Cấu hình tùy chọnreplace?: boolean: Có thay thế history record hiện tại hay không (mặc địnhfalse, tức là push record mới)state?: any: State được truyền cho route đích. Dữ liệu này không xuất hiện trong URL, có thể truy cập quactx.location.stateở page đích, phù hợp với thông tin nhạy cảm, dữ liệu tạm thời hoặc thông tin không nên đặt trong URL
Ví dụ
Chuyển hướng cơ bản
Thay thế history (không thêm record mới)
Truyền state
Back và refresh
Quan hệ với ctx.route, ctx.location
ctx.router chịu trách nhiệm "hành động điều hướng", ctx.route và ctx.location chịu trách nhiệm "trạng thái route hiện tại".
Lưu ý
navigate(path)mặc định sẽ push record history mới, người dùng có thể quay lại qua nút back của browserreplace: truesẽ thay thế history record hiện tại mà không thêm mới, phù hợp với các kịch bản như redirect sau login, chuyển hướng sau khi submit thành công- Về tham số
state:- Dữ liệu được truyền qua
statekhông xuất hiện trong URL, phù hợp với dữ liệu nhạy cảm hoặc tạm thời - Có thể truy cập qua
ctx.location.stateở page đích statesẽ được lưu trong history của browser, vẫn truy cập được khi forward/back- Sau khi refresh page,
statesẽ mất
- Dữ liệu được truyền qua
Liên quan
- ctx.route: Thông tin match route hiện tại (pathname, params, v.v.)
- ctx.location: Vị trí URL hiện tại (pathname, search, hash, state),
stateđược đọc tại đây sau khi điều hướng

