【Vue3/Vue2】判断设备是移动端还是pc端跳转不同路由router

这篇具有很好参考价值的文章主要介绍了【Vue3/Vue2】判断设备是移动端还是pc端跳转不同路由router。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 【Vue3/Vue2】判断设备是移动端还是pc端跳转不同路由router,javascript,css,正则表达式

 

 【Vue3/Vue2】判断设备是移动端还是pc端跳转不同路由router,javascript,css,正则表达式

Vue3代码 

APP文件中写入js代码

1、首先,通过isMobile()函数判断用户的设备类型。该函数使用正则表达式匹配navigator.userAgent字符串,以确定用户是在移动设备上访问网页还是在桌面设备上访问网页

2、然后,在onMounted()钩子函数中,根据当前的路由路径来判断是否需要进行重定向。如果当前路径是根路径('/')或移动端首页路径('/mobile_index'),则会进一步检查设备类型。
3、如果是移动设备,则通过router.replace('/mobile_index')将路由重定向到移动端首页。如果是桌面设备,则通过router.replace('/')将路由重定向到桌面端首页。
<script setup lang="ts">
import { onMounted } from 'vue';
import { useRouter, useRoute } from 'vue-router'
const router = useRouter()
const route = useRoute()
const isMobile = () => {
  let flag = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)
  return flag;
}

onMounted(() => {
  if (route.path === '/' || route.path === '/mobile_index') {
    if (_isMobile()) {
      router.replace('/mobile_index')
    } else {
      router.replace('/')
    }
  }
})

router中写法

import type { RouteRecordRaw } from 'vue-router'
export const staticRoutes: Array<RouteRecordRaw> = [
  // pc
  {
    path: '/',
    component: () => import('../views/pc_index.vue'),
    redirect: '/home',
    children: [
      {
        path: '/home',
        name: 'Home',
        component: () => import('../views/home/index.vue'),
        meta: {
          title: '首页',
          icon: 'ele-HomeFilled',
        },
      },
     
      // 公司产品
      {
        path: '/companyProducts',
        name: 'companyProducts',
        redirect: '/companyProducts/coalAR',
        children: [
          {
            path: '/companyProducts/coalAR',
            name: 'coalAR',
            component: () =>
              import('../views/companyProducts/coal/coalAR/index.vue'),
          }
          
        ],
      },
    
    ],
  },
  // 手机端首页
  {
    path: '/mobile_index',
    component: () => import('../views/mobile_index.vue'),
    redirect: '/mobileIndex',
    children: [
      {
        path: '/mobileIndex',
        name: 'mobileIndex',
        component: () => import('../views/mobile/mobileIndex.vue'),
        meta: {
          title: '首页',
          icon: 'ele-HomeFilled',
        }
      },
    
      // 公司产品
      {
        path: '/mobileProducts',
        name: 'mobileProducts',
        redirect: '/mobileProducts/coalAR',
        children: [
          {
            path: '/mobileProducts/coalAR',
            name: 'mobileCoalAR',
            component: () =>
              import('../views/mobile/mobileProducts/coal/coalAR/index.vue'),
          }
        ]
      }

    ]
  },
]

Vue2写法

在 App.vue 的 mounted 方法中对设置进行判断,如下:

//App.vue
mounted() {
    if (this._isMobile()) {
      alert("手机端");
      this.$router.replace('/m_index');
    } else {
      alert("pc端");
      this.$router.replace('/pc_index');
    }
  },
methods:{
 isMobile = () => {
  let flag =     navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)
  return flag;
}
}


/在 router/index.js 中有两个页面。
//在 router/index.js 中有两个页面。
export default new Router({
  mode: 'history',
  routes: [
    {
      path: '',
      redirect: '/pc_index'
    },
    {
      path: "/pc_index", // pc端首页
      name: PcIndex,
      component: PcIndex
    },
    {
      path: '/m_index', // 手机端首页
      name: MIndex,
      component: MIndex
    }
  ]
});

参考vue2链接地址:【Vue】判断设备是移动端还是pc端_vue判断是pc端还是移动端-CSDN博客文章来源地址https://www.toymoban.com/news/detail-792600.html

到了这里,关于【Vue3/Vue2】判断设备是移动端还是pc端跳转不同路由router的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue2和vue3拖拽移动div

    直接上代码,代码可以直接运行, vue2拖拽移动div: vue3拖拽移动div: 设置div居中后,发现一开始拖拽时,div会跑到最左边,vue3优化代码如下:

    2024年02月07日
    浏览(39)
  • 电脑端(PC)按键精灵——4.控制命令(判断、循环、跳转)

    注:说了键盘、鼠标、其他命令还有安装内容,现在说下控制命令,也就是非常有用的判断和循环操作 电脑端(PC)按键精灵—小白入门 详细教程 1.IfColor 颜色判断 简介 实例 1.用抓抓定位目标,我这里定位的是绿色 2.调试,启动,弹窗显示“颜色一样” 缩小后,定位的位置显

    2024年02月15日
    浏览(42)
  • uniapp开发小程序-如何判断小程序是在手机端还是pc端打开

    官方说明 https://developers.weixin.qq.com/miniprogram/dev/devtools/pc-dev.html 小程序如何判断是 PC 平台? 通过 getSystemInfo 官方接口(platform 是 windows) 通过 UA(PC UA 包含 MiniProgramEnv/Windows) App.vue 判断是否是pc端的函数(如果宽度足够也视为pc端) 同时值得注意的是,微信开发者工具的

    2024年02月04日
    浏览(50)
  • 使用JS判断访问设备是电脑还是手机

    有时在编写前端页面视图时,需要根据用户不同的访问设备(手机或电脑)对页面设置不同显示样式或跳转到不同的页面。可以使用JS代码获取Navigator对象的userAgent属性,通过对该属性值的分析就可以知道当前访问的设备是电脑还是手机。 一些常用设备访问时返回的userAgent属

    2024年02月08日
    浏览(44)
  • Android 判断当前设备是手机还是平板的最有效的方法【2022版】

    之前已经写过一篇文章介绍了,详见《Android 判断当前设备是手机还是平板的最有效的方法》 但是经过一段的时间的使用,发现在一些学习机上会出现误判。学习机明明是10英寸的,但是代码算出来的结果却是5英寸。我猜应该是学习机的硬件信息有误造成的。竟然会误判,那

    2024年02月13日
    浏览(52)
  • 如何将储存在Mac或PC端的PDF文件传输到移动设备呢?

    iMazing是一款iOS设备管理软件,用户借助它可以将iPad或iPhone上的文件备份到PC或Mac上,还能实现不同设备之间的文件传输,能很大程度上方便用户进行文件管理。 在阅读方面,iPad和iPhone是阅读PDF的优秀选择,相较于Mac或PC,它们更加便携,方便随时阅读。那么,如何将储存在

    2024年02月10日
    浏览(50)
  • uniapp开发的App(安卓)端跳转uniapp微信小程序

    本文总结两种跳转方法:!!!适合自己的才是最好的         !   小程序的 URL Scheme           !! 小程序的 URL Link    代码实现: !!!切记本案例是前端调用,应该让后端封装调用(为了安全考虑) 以上可以拿到小程序的两种URL 链接 vebView页面代码: !!!打包App时需

    2024年02月08日
    浏览(66)
  • uniapp微信公众号(h5)端跳转微信小程序

    !!!不是微信公众号菜单跳转小程序 微信公众号菜单跳转小程序:公众号和小程序相互关联,在公众号的自定义菜单中配置即可 1、 绑定域名  2、安装依赖 jweixin-module 3、 引入挂载 !!!main.js引入挂载 !!!单页面引入挂载 4、 通过 config 接口注入权限验证配置(需要后

    2024年02月13日
    浏览(129)
  • java通过http头部信息如何判断是ipad、安卓手机还是苹果手机 或者是其它设备...

    在Java中使用HttpServletRequest对象的getHeader(\\\"User-Agent\\\")方法可以获取到客户端发送过来的User-Agent信息。根据这个信息,可以判断客户端是哪种设备。 对于iPad,User-Agent信息通常包含\\\"iPad\\\"字样;对于安卓手机,包含\\\"Android\\\"字样;对于苹果手机,包含\\\"iPhone\\\"字样。 代码示例: 注意:不

    2024年02月13日
    浏览(66)
  • vue2项目PC端自适应屏幕

            公司项目做之前没有沟通好,按照1920*1080设计图做的页面,缩放比是100%,项目做完之后说要适配缩放比,并且工控屏(分辨率1024*768),需要做小屏适应。         开发中一般pc端都是不用怎么考虑去适配屏幕的,因为现在的屏幕分辨率都是1960*1080,所以正常

    2024年02月10日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包