【发布时间】:2020-06-30 09:49:46
【问题描述】:
我有一个 Nuxt 页面,我需要检测该页面是在移动设备还是桌面设备中打开的。我曾尝试使用window.innerWidth 属性进行检测,但将其放入mounted() 生命周期挂钩时似乎无法正常工作。
下面是代码:
data() {
return {
...
isMobile: false,
...
};
},
mounted() {
this.isMobile = window.innerWidth < 768;
console.log(this.isMobile); // logs `false`
},
但是我是否将声明放在created() 生命周期中,它再次抛出错误为window is not defined。
我怀疑这是为什么? created() 在 mounted() 之前运行,而且我的 ESLint 显示错误,例如“no-globals-in-created”。
请在这里帮忙!
【问题讨论】:
-
它在文档中,vue生命周期->mounted+tick已经渲染了dom,使用
await vm.$nextTick() -
我试图重现,看看我的例子,它看起来像预期的那样工作
标签: javascript vue.js nuxt.js