修复Nuxt中导航器/窗口/文档未定义的方法
P粉143640496
P粉143640496 2024-03-25 19:00:40
0
1
445

我试图确定 Nuxt 应用程序内的 UserAgent 和 Retina 信息。但应用程序抛出错误并显示导航/窗口未定义。我如何在 nuxt 应用程序中获取这些信息?

const userAgent = navigator.userAgent.toLowerCase()
const isAndroid = userAgent.includes('android')
isRetina() {
  let mediaQuery
  if (typeof window !== 'undefined' && window !== null) {
    mediaQuery =
      '(-webkit-min-device-pixel-ratio: 1.25), (min--moz-device-pixel-ratio: 1.25), (-o-min-device-pixel-ratio: 5/4), (min-resolution: 1.25dppx)'
    if (window.devicePixelRatio > 1.25) {
      return true
    }
    if (window.matchMedia && window.matchMedia(mediaQuery).matches) {
      return true
    }
  }
  return false
}

P粉143640496
P粉143640496

全部回复(1)
P粉242126786

这是要修复的解决方案:

  • navigator 未定义
  • window 未定义
  • 文档未定义

这是一个关于如何包装逻辑 JS 代码的示例

sssccc

如下所示:https://nuxtjs.org/docs/2。 x/internals-glossary/context

PS: mounted + process.client 有点多余,因为 mounted 仅运行在 客户端


此外,如果您希望组件仅在客户端呈现,则将组件包装到 <client-only> 也是一个好主意。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板