Nuxt 3のuseCookie
で数値を表すString
(例えば123
)をcookieとして保存し読み出した際に自動的にNumber
(123
)に変換されてしまう現象に遭遇したのでメモ。
これは、useCookie
のencode
オプションのデフォルトでは文字列をそのままCookieとして保存しているのにも関わらず、デコード時はJSONとしてデコードするため起きている。
"123"
をCookieに保存する場合は123
という文字列がそのまま保存されるが、これはJSONでデコードした場合Numberになってしまう。
保存する際に文字列としてエンコードしてあげればデコード時も文字列として取得できるのだがそうはなっていない。
対策としてcookieの値を文字列のまま保持するには、useCookie
のencode
オプションで文字列としてエンコードしてあげればいい。