docs(router): clarify static title fallback in SPA mode
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 1/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 62/100
- issue の種類
- ドキュメント
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- html, react, typescript
調査の方向性
このガイドは TanStack Router のドキュメントにある SPA ドキュメントの head ページで、index.html から静的な <title> を削除する指示が <HeadContent /> と並んで書かれています。そのセクションを読んだうえで、ルートのタイトルに関する以前の経緯として、リンク先のディスカッション #1056 を確認してください。完了の条件は、ドキュメントが静的タイトルを削除しなければならない理由、削除後の初期 HTML の姿、そしてルート固有のメタデータにはプリレンダリングまたは SSR を推奨し、サポートされたフォールバックパターンを示すことです。
索引モデルが issue の本文から書いたものです。
説明
What would you like to see?
The SPA document head guide says to remove the static <title> from index.html when using <HeadContent />. It would help to explain why this is necessary and what to do if the app still needs a fallback title before JavaScript runs.
In SPA mode, the initial HTML response is the same for every route, so route-specific metadata is only available after the router runs. A static title can provide a useful fallback, but HeadContent currently doesn't adopt or replace that unmanaged title, so leaving it in place can result in duplicate titles.
Could the docs clarify this trade-off and recommend prerendering or SSR when route-specific metadata needs to be present in the initial HTML? It would also be useful to mention a supported pattern for retaining a generic fallback title without leaving duplicate title elements after the app starts.
Why is this needed?
Some apps don't need search indexing, but still want a sensible browser-tab title if JavaScript is disabled, blocked, or fails to load. The current instruction to remove the title is easy to follow without realizing that the initial document then has no title until client-side rendering.
I found the existing discussion about route titles: https://github.com/TanStack/router/discussions/1056
- 主要言語
- TypeScript
- スター
- 15.3k
- フォーク
- 1.9k
- 平均マージ
- 1日 5時間
- マージ済み PR(30日)
- 58
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
TanStack/router のほかの issue
-
router.startViewTransition leaves the ready/finished promises unhandled, so a skipped transition throws an unhandled AbortError対応中かも @unjica が 12 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
TanStack/router#8776 · コメント 3 件 · リアクション 2 件 ·
メンテナーはふだん 1 日以内に返信
-
Router devtools crash when search params contain a BigInt (JSON.stringify in history tracking)対応中かも @A-Raphie が 15 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信
-
docs: `createLink` has no API reference page; 3 how-to guides link to a missing `#createlink` anchor対応中かも @A-Raphie が 15 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信
-
Inline scripts are duplicated after hydration when the CSP nonce is sent in a header対応中かも @gabriel-le が 36 日前に担当しました。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
メンテナーはふだん 1 日以内に返信
-
start-plugin-core: sitemap lastmod and pages.json lastBuilt are stamped with the build's wall clock (no SOURCE_DATE_EPOCH support)対応中かも @treadnot が 38 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
TanStack/router の issue をすべて見る
似ている issue
-
apps/stage-web bug env/os-linux pending triage scope/audio-output
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
reproduced
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
anomalyco/opencode#61640 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
scope: data grid status: waiting for maintainer
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 2 日以内に返信
-
ai-driven-fuzzing bug Minor
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信
-
ai-driven-fuzzing bug claude Minor
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
linagora/twake-calendar-frontend#1944 ·
メンテナーはふだん 1 日以内に返信