我尝试访问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
}
因此,您将只在客户端运行这段代码。