J'essaie de déterminer les informations UserAgent et Retina dans une application Nuxt. Mais l'application génère une erreur et indique que la navigation/la fenêtre n'est pas définie. Comment obtenir ces informations dans une application 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 }
Voici la solution à corriger :
navigator 未定义
window 未定义
文档未定义
Ceci est un exemple sur la façon d'envelopper du code JS logique
Ça ressemble à ça : https://nuxtjs.org/docs/2. x/glossaire-internes/context
PS :
mounted
+process.client
有点多余,因为mounted
Fonctionne uniquement sur client.C'est également une bonne idée d'envelopper le composant dans
<client-only>
si vous souhaitez que le composant soit rendu uniquement côté client.