LoginSignup
4
1

More than 1 year has passed since last update.

Recoil で永続化したら事故りかけた

Posted at

Recoil 超便利!

Recoil は Meta 社が配布する React の State 管理ライブラリだ。

React で State のバケツリレーにうんざりしていた私には便利すぎた。本日時点で、0.7.4 と experimental なライブラリであり、現在猛烈に開発が進んでいるが、とにかく便利だった。

recoil-persist で永続化したらリロードしても使える。超便利!と、なんでもポンポン入れて開発していた。

Recoil ちょっと怖い

便利便利〜!と使っていたが、永続化が永続すぎて(?)、ちょっと怖い。state がブラウザ閉じても残ってるって何?どこに保存されてるの?まぁブラウザやろうな…となって、初めて何やってるか調べた。

localStorage に保存されていた。で…

recoilPersist({
  key: 'recoil-persist',
  storage: sessionStorage,
})

こんな風にすれば、sessionStorage に保存できるが、そういうことじゃない。
生で入ってる。わぁ JSON 形式で分かりやす〜い。ちょっと書き換えてみよう。

Recoil は用法と用量を守って

Recoil は永続化すると、その情報が localStorage/sessionStorage に生で保存されるので、見られては困るようなものは入れてはいけない。ログインしたユーザの情報(名前とか)は Recoil で永続化しておいたら便利そうな気がするけど、例えば、isAdmin: true などというような権限系の情報が入っていて、それでアクセス制限してたとすると、それはご自由にお入りください、だ。

ツールを分からんまま使ってはいけない。とは言え、Recoil は超便利なので、Recoil で永続化して良いもの、ダメなものをきちんと分類して使いましょう。気づかずリリースしてたら大事故になってたかも。引き継ぐことを念頭に、README に注意喚起しておく。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1