All Projects → nuxt-community → Device Module

nuxt-community / Device Module

Licence: mit
Nuxt.js module for detecting device type.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Device Module

Vue Notion
A fast Vue renderer for Notion pages
Stars: ✭ 343 (-21.33%)
Mutual labels:  nuxt, nuxtjs
Awesome Nuxt
A curated list of awesome things related to Nuxt.js
Stars: ✭ 4,285 (+882.8%)
Mutual labels:  nuxt, nuxtjs
nuxt wp
Repo for my blog series on a building a site with WordPress REST API, Vue, and Nuxt.js
Stars: ✭ 41 (-90.6%)
Mutual labels:  nuxt, nuxtjs
Nuxt Purgecss
Drop superfluous CSS! A neat PurgeCSS wrapper for Nuxt.js
Stars: ✭ 356 (-18.35%)
Mutual labels:  nuxt, nuxtjs
Blog Front
blog-front @nuxt
Stars: ✭ 305 (-30.05%)
Mutual labels:  nuxt, nuxtjs
nuxt-blog
📝 Personal blog built with Nuxt.js and wordpress rest api
Stars: ✭ 13 (-97.02%)
Mutual labels:  nuxt, nuxtjs
Nuxt Ssr Firebase
Nuxt.js Universal App with SSR via Firebase Functions and Firebase Hosting
Stars: ✭ 273 (-37.39%)
Mutual labels:  nuxt, nuxtjs
nuxt-mobile-detect
Nuxt mobile and device detection plugin for client side and SSR
Stars: ✭ 24 (-94.5%)
Mutual labels:  nuxt, nuxtjs
Nuxt Material Admin
Vue-CLI Boilerplate based on Nuxt and vue-material-admin template.
Stars: ✭ 310 (-28.9%)
Mutual labels:  nuxt, nuxtjs
nuxt-star-admin-extra
Admin Template base on Vue StarAdmin with improved on design and served using Nuxt.js
Stars: ✭ 19 (-95.64%)
Mutual labels:  nuxt, nuxtjs
Graphcms Examples
Example projects to help you get started with GraphCMS
Stars: ✭ 295 (-32.34%)
Mutual labels:  nuxt, nuxtjs
Vercel Builder
Vercel Builder for Nuxt.js
Stars: ✭ 437 (+0.23%)
Mutual labels:  nuxt, nuxtjs
k-domains
A simple module to manage multiple subdomains with just one project
Stars: ✭ 41 (-90.6%)
Mutual labels:  nuxt, nuxtjs
Nuxt7
📱 Full Featured iOS & Android PWA Apps with Nuxt.js and Framework7
Stars: ✭ 282 (-35.32%)
Mutual labels:  nuxt, nuxtjs
global-components
Module to register global components for Nuxt.js
Stars: ✭ 57 (-86.93%)
Mutual labels:  nuxt, nuxtjs
test-utils
Test utilities for Nuxt.js
Stars: ✭ 100 (-77.06%)
Mutual labels:  nuxt, nuxtjs
nuxt-babel
Use normal .babelrc file with your Nuxt app
Stars: ✭ 32 (-92.66%)
Mutual labels:  nuxt, nuxtjs
nuxt-feature-toggle
The nuxt feature toggle module
Stars: ✭ 78 (-82.11%)
Mutual labels:  nuxt, nuxtjs
admin-null-nuxt
Admin Null — Free Nuxt Bulma Admin Dashboard (with dark mode)
Stars: ✭ 39 (-91.06%)
Mutual labels:  nuxt, nuxtjs
Nuxt Webfontloader
Efficient web font loading has never been easier!
Stars: ✭ 264 (-39.45%)
Mutual labels:  nuxt, nuxtjs

@nuxtjs/device

npm version npm downloads License Standard JS nuxt-device-detect Dev Token

This module injects flags that indicate a device type into the context and the component instance.

See demo on CodeSandbox.

Setup

Add @nuxtjs/device to the dev dependencies using yarn or npm to your project.

yarn add --dev @nuxtjs/device
# Using npm
npm install -D @nuxtjs/device

Add it to the buildModules section of your nuxt.config:

{
  buildModules: [
   '@nuxtjs/device',
  ]
}

That's it, you can now use $device in your Nuxt app ✨

Flags

You can use these flags to detect the device type.

$device.isDesktop
$device.isMobile
$device.isTablet
$device.isMobileOrTablet
$device.isDesktopOrTablet
$device.isIos
$device.isWindows
$device.isMacOS
$device.isAndroid

The user agent is also injected an accessible with $device.userAgent.

Usage

Switch a view

<template>
  <section>
    <div v-if="$device.isDesktop">
      Desktop
    </div>
    <div v-else-if="$device.isTablet">
      Tablet
    </div>
    <div v-else>
      Mobile
    </div>
  </section>
</template>

Of course, you can use $device via this in a script.

Change a layout dynamically

export default {
  layout: (ctx) => ctx.$device.isMobile ? 'mobile' : 'default'
}

Add a custom flag

You can add other flags to $device by adding a Nuxt plugin:

// plugins/custom-flag.js
export default function ({ $device }) {
  $device.isCustom = $device.userAgent.includes('Custom-Agent') ? true : false
}

Options

defaultUserAgent option can be used when running npm run generate.

{
  buildModules: ['@nuxtjs/device'],
  device: {
    defaultUserAgent: 'Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.39 Mobile Safari/537.36'
  }
}

Note that the default user agent value is set to Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.39 Safari/537.36.

CloudFront Support

If a user-agent is Amazon CloudFront, this module checks the both headers CloudFront-Is-Mobile-Viewer and CloudFront-Is-Tablet-Viewer.

Here are the details about the headers: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html#header-caching-web-device

Caution

isIos, isWindows and isMacOS flags are not available with CloudFront.

Cloudflare Support

This module checks the header CF-Device-Type.

Here are the details about the header: https://support.cloudflare.com/hc/en-us/articles/229373388-Cache-Content-by-Device-Type-Mobile-Tablet-Desktop-

License

MIT License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].