文档
路由器

路由器

Router 用于在页面之间导航和管理页面历史。

import { useRouter } from "narraleaf-react";
const router = useRouter();

公共方法

push

将新页面 id 推入路由器历史记录并导航到该页面。

router.push("about");

游戏将导航到 id 为 about 的页面。如果前进历史中有任何页面,它们将被清除。

<Page id="about">
    {/* 这些元素将被显示 */}
    {/* 你的内容 */}
</Page>
  • id: string - 要导航到的页面 id
  • 返回 this

back

导航到路由器历史记录中的上一个页面。

如果没有上一个页面,此方法将不执行任何操作。

  • 返回 this

forward

导航到路由器历史记录中的下一个页面。

如果没有下一个页面,此方法将不执行任何操作。

  • 返回 this

clear

清除当前页面 id 和导航历史。所有页面将从舞台中移除。

  • 返回 this

cleanHistory

清理导航历史记录,同时保持当前页面。这将删除所有前进和后退历史条目,只保留当前页面在历史记录中。

  • 返回 this

getCurrentId

获取当前页面 id。

  • 返回 string | null - 当前页面 id,如果没有活动页面则返回 null

onExitComplete

注册页面退出完成事件的处理程序。

router.onExitComplete(() => {
    console.log("页面退出动画已完成");
});
  • handler: () => void - 当页面退出完成时要调用的回调函数
  • 返回 LiveGameEventToken - 用于取消订阅事件的令牌,参见 LiveGameEventToken

onceExitComplete

注册页面退出完成事件的一次性处理程序。处理程序将在第一次事件后自动取消订阅。

router.onceExitComplete(() => {
    console.log("页面退出动画已完成一次");
});
  • handler: () => void - 当页面退出完成时要调用的回调函数
  • 返回 LiveGameEventToken - 用于取消订阅事件的令牌,参见 LiveGameEventToken

onPageMount

注册页面挂载事件的处理程序。

router.onPageMount(() => {
    console.log("新页面已挂载");
});
  • handler: () => void - 当新页面挂载时要调用的回调函数
  • 返回 LiveGameEventToken - 用于取消订阅事件的令牌,参见 LiveGameEventToken

oncePageMount

注册页面挂载事件的一次性处理程序。处理程序将在第一次事件后自动取消订阅。

router.oncePageMount(() => {
    console.log("新页面已挂载一次");
});
  • handler: () => void - 当新页面挂载时要调用的回调函数
  • 返回 LiveGameEventToken - 用于取消订阅事件的令牌,参见 LiveGameEventToken