Навигация/переключение между экранами UI
Для навигации между различными экранами UI необходимо использовать систему маршрутизации. Система маршрутизации позволяет определять маршруты (или пути) для разных экранов и управлять навигацией между ними.
TanStack Router
Главное преимущество TanStack Router — это его способность автоматически генерировать обработку маршрутов с помощью createFileRoute. С помощью createFileRoute вы можете определять свои маршруты, просто создавая файлы в определённой структуре папок. Например, если вы создадите файл about.tsx в папке src/routes, TanStack Router автоматически сгенерирует маршрут для /about, который отображает компонент, определённый в about.tsx.
import { createFileRoute } from "@tanstack/react-router";
export const Route = createFileRoute("/about")({
component: About,
});
function About() {
return (
<main className="page-wrap px-4 py-12">
<section className="island-shell rounded-2xl p-6 sm:p-8">
<p className="island-kicker mb-2">About</p>
<h1 className="display-title mb-3 text-4xl font-bold text-[var(--sea-ink)] sm:text-5xl">
A small starter with room to grow.
</h1>
<p className="m-0 max-w-3xl text-base leading-8 text-[var(--sea-ink-soft)]">
TanStack Start gives you type-safe routing, server functions, and modern SSR defaults. Use this as a
clean foundation, then layer in your own routes, styling, and add-ons.
</p>
</section>
</main>
);
}Как переключаться между экранами/маршрутами?
Чтобы переключаться между экранами/маршрутами, используйте функцию навигации, предоставляемую вашей системой маршрутизации.
Шаблоны
Во всех шаблонах интерфейс StepLabelProps уже расширен и включает функцию navigate. Его можно найти в файле pixi-vn.d.ts.
Тестирование
Если Game.testing плагина Vite.js (см. раздел «Vite.js plugin» выше и Agent Skill pixi-vn-testing)
используется для того, чтобы ИИ-агент мог протестировать игру, вызовите здесь также
Game.testing.setProps
чтобы navigate (и всё остальное, что возвращает этот хук) оставалось доступным для тестовой сессии:
import { Game, StepLabelProps } from "@drincs/pixi-vn";
import useMyNavigate from "./useMyNavigate";
export default function useGameProps(): StepLabelProps {
const navigate = useMyNavigate();
const props = {
navigate,
};
Game.testing.setProps(props);
return props;
}ink
Во всех шаблонах ink была введена пользовательская команда с хэштегом для навигации между маршрутами. To do this, you need to use the following syntax:
# navigate [route]route: путь/маршрут назначения. Например,# navigate /new-route.
Когда вы создаёте новый нарративный узел, вы можете использовать функцию navigate, чтобы переключаться между маршрутами:
export const startLabel = newLabel("start", [
({ navigate }) => {
navigate("/new-route");
},
]);