Router
ZMP framework cung cấp route và router instance giúp dễ dàng thực hiện các hoạt động định tuyến
Current route
Lấy current route
Đại diện cho route đang được kích hoạt, để truy xuất current route có 2 cách:
-
Thông qua props của Page components
// nhận thông qua props của Page component được khai báo
export default ({ zmproute }) => {
useEffect(() => {
console.log(zmproute.url);
}, []);
// ...
return <Page></Page>;
}; -
Thông qua zmp instance:
import { zmp } from "zmp-framework/react";
// thông qua zmp instance
export default () => {
useEffect(() => {
// ví dụ main view
const zmproute = zmp.views.main.router.currentRoute;
console.log(zmproute);
}, []);
// ...
return <Page></Page>;
};
Properties
Route instance chứa các properties sau:
-
url: route URL
-
path: route path
-
query: object chứa route query params. Ví dụ
/page/?id=5&foo=bar
console.log(zmproute.query);
//{id: '5', foo: 'bar'}
- name: tên của route
- hash: route URL hash
- route: route object thể hiện cấu hình của route hiện tại
Router instance
Lấy router instance
Router instance đại diện cho app router, để truy xuất router instance có 2 cách:
-
Thông qua props của Page components
// nhận thông qua props của Page component được khai báo
export default ({ zmprouter }) => {
const doSomethingWithRouter = () => {
// thao tác với router thông qua zmprouter
};
// ..
return <Page></Page>;
}; -
Thông qua zmp instance:
import { zmp } from "zmp-framework/react";
// thông qua zmp instance
export default () => {
const doSomethingWithRouter = () => {
// ví dụ main view
const zmprouter = zmp.views.main.router;
// thao tác với router thông qua zmprouter
};
// ...
return <Page></Page>;
};
Methods
methods | Mô tả |
---|---|
.navigate(url, options) | Chuyển đến trang mới:
|
.navigate(parameters, options) | Chuyển đến trang mới:
|
.back(url, options) | Trở lại trang trước, trở lại trang cụ thể trong lịch sử của View:
|
.refreshPage() | Tải lại trang hiện tại |
.clearPreviousHistory() | Xoá các trang trước trong lịch sử và xoá các trang trước đó khỏi DOM |
.updateCurrentUrl(url) | Thay đổi url và các thông số ( query,..) của zmprouter.currentRoute thông qua url mà không tải lại trang |
.generateUrl({path, query}) | tạo url từ. Ví dụ zmprouter.generateUrl({path: '/specific-path/', query: { id: 2}}) tạo thành /specific-path/?id=2 |
.on(event, handler) | Thêm event handler. Các event (routeChange, routeChanged, routeUrlUpdate) |
.once(event, handler) | Thêm event handler và sẽ bị xoá sau khi event fired |
.off(event, handler) | Xoá event handler |
.off(event) | Xoá tất cả event handler của một event cụ thể |
.emit(event, ...args) | fire event |