tabの状態をqueryに持たせる
さぁこれから実際にHands-onを始めて行きましょう。
まずは、http://localhost:3000/
にアクセスしてみてください。
下記のようなページが表示されるはずです。
このページには、Sign-up
と Login
の二つのタブがあります。
それぞれをクリックすると、タブが切り替わります。
このタブの状態をURLに持たせることで、ブラウザのリロードやリンクをクリックした際にもタブの状態を保持することができます。
現状の確認
現在は、タブの状態を保持していないため、リロードやリンクをクリックした際にタブの状態がリセットされてしまいます。
試しに、タブをLogin
に切り替えてからリロードしてみてください。
Sign-up
に戻ってしまいます。
修正する
まずは、Page の query を取得するために、Props を受け取るように修正します。
その次に、tab
の値を取得します。
次に、Tabs
コンポーネントにtabValue
を渡します。
そして、TabsTrigger
コンポーネントにonClick
を追加して、タブの更新時にqueryを更新するようにします。
これで、タブの状態をURLに持たせることができました。
改めて、タブをLogin
に切り替えてからリロードしてみてください。
Login
のままになっているはずです。
まとめ
今回は、タブの状態をURLに持たせる方法を学びました。
これで、ブラウザのリロードやリンクをクリックした際にもタブの状態を保持することができるようになりました。
これを応用することで、モーダルを開いた状態のリンクを共有するなど、様々な用途に活用することができます。