Nuxt.jsでの開発でdata内でlocalstorageを使おうとしたときに「localstorage is not defined」エラーが出た時の対応メモです。
以下のようにdata内で直接呼び出すとサーバサイドレンダリングしているのでブラウザのストレージにアクセスできずエラーになる。
data () {
isLoggin: localStorage.currentUser.token !== null
}
対応
以下のようにmounted内でアクセスすれば動作する
data () {
isLoggin: false
},
mounted () {
if (localStorage.currentUser) {
this.isLoggin = localStorage.currentUser.token !== null
}
}
参考
https://jp.vuejs.org/v2/cookbook/client-side-storage.html