Search Paramsを手軽に扱うためのhooksを作りました

一覧表示画面などでフィルタ条件を設定したときに、URLのSearch Params(Query String)に状態を保持しておき、画面をリロードしたり別の画面から戻ってきたときに、UIの状態を維持できるようにするみたいな要件って、結構よくありますよね。

今の仕事でもそういったコードが必要になったので、Search Paramsを扱うためのいい感じのhooksがどこかに転がっているだろうと色々探してみたのですが、絶妙にProduction Readyなコードが見つかりませんでした。

なので、自前で書きました。誰かの役に立てば幸いです。

Search ParamsをuseLocation()で取得しようとするとうまく動作しないけどhostory.locationで取得するとうまくいくというのが最大の罠でした。

本体コード

テストコード