Route と Link
Route<P, Q> はパスで配信するページで、パスのパラメータは P、クエリパラメータは Q です。Link<S> はそのページへのリンクです。
Route
routes! の中にハンドラと一緒に宣言し、同じ値をそのページへのリンクにも使います。
| 項目 | 概要 |
|---|---|
routes! | アプリケーションのページと、それを配信する関数を宣言します。 |
link | パラメータを持たないこのページへのリンクです。 |
link_with | 引数 args を渡すこのページへのリンクです。 |
url | サーバーで書き出す、引数 args を渡したこのページの URL です。 |
path | axum が照合する形のパスです。各パラメータは {name} のまま残ります。 |
Base | アプリケーションを配信するパスの接頭辞です。プロキシの裏の /app などに使います。 |
Base::new | 接頭辞 path です。/ で始まり、/ で終わりません。 |
Base::ROOT | 接頭辞なしです。アプリケーションをホストのルートで配信します。 |
Base::as_str | 接頭辞の文字列です。Base::ROOT では空になります。 |
パラメータとリンク
| 項目 | 概要 |
|---|---|
Params | Route のパラメータです。()、Segment 1 つ、要素が 2 個から 6 個のタプルのいずれかです。 |
Segment | Route の {name} セグメント 1 つが持つ型です。 |
derive(Segment) | どのバリアントもフィールドを持たない enum に hypersig::Segment を実装します。 |
Search | Route のクエリパラメータです。() か、#[derive(Signals, Search)] を付けた構造体です。 |
SearchValue | Search のフィールドの型で、SearchScalar か、その Option か Vec です。 |
SearchScalar | クエリ文字列の値 1 つが持つ型です。 |
derive(Search) | 構造体の各フィールドをクエリ文字列に書けることを検査します。 |
Rest | パスの末尾にある {*name} セグメントが受け取る残りの部分で、/ を含められます。 |
Extends | 親の Route のパラメータ P で始まるパラメータです。 |
Link | Route へのリンクです。シグナルが S のページで El::href に渡します。 |
Link::navigate | リンクをたどったときと同じように、リンク先のページを読み込む文です。 |
Link::push_url | リンク先の URL を新しい履歴の項目としてアドレスバーに出す文です。 |
Link::replace_url | 今の URL の代わりにリンク先の URL をアドレスバーに出す文です。 |
Url | サーバーで Route::url が書き出す、ページの URL です。 |
SafeUrl | スクリプトを動かせないスキームの URL です。http:、https:、mailto: か、/logo.png、#top、?page=2、//cdn.example/a.js のようにスキームのないものです。 |
SafeUrl::parse | 訪問者が入力した URL のような、プログラムの外から来た URL を読みます。 |
UnsafeUrl | SafeUrl::parse が受け付けなかった文字列と、破っていた規則です。 |