如何在Nuxt js中访问asyncData内部的localStorage



我尝试访问asyncData内部的localStorage,但结果是"localStorage未定义";

asyncData(){
if(localStorage.getItem("myCat")){
alert(localStorage.getItem("myCat"));
return;
}

}

localStorage未定义,因为asyncData()在SSR期间在服务器上解析。localStorage变量只能在客户端浏览器中访问。

请参阅文档:https://nuxtjs.org/docs/features/data-fetching/.您可以在mounted()挂钩中使用localStorage。

除了Jakub Záruba的答案之外,如果您仍然需要在asyncData中访问localStorage,您可以修改您的if-语句,如下所示:

if (process.client && localStorage.getItem("myCat")) {
alert(localStorage.getItem("myCat"))

return
}

因此,您将只在客户端运行这段代码。

最新更新