最近在项目上时第一次尝试双端编写,所以学习了一下在VUE项目中进行PC与移动端判断,并实现跳转到不同组件。
第一步
在APP.vue中,对router-view进行命名,对name属性进行编写,同时增加一个showPage属性进行PC、移动端标识
<template>html
<div id="app">
<router-view v-if="showPage == 1" name="mobile"></router-view>
<router-view v-if="showPage == 2" name="pc"></router-view>
</div>
</template>
第二步
在APP.vue中利用setup语法糖,定义showPage,并进行判断
import { onMounted,ref } from 'vue';
//移动端路由为1 PC端路由为2
const showPage = ref(1)
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(_isMobile()){
//移动端
showPage.value = 1
}else{
//PC 端
showPage.value = 2
}
})
在路由文件router中,修改components,其中的pc和mobile对应router-view中的name属性
import { createRouter, createWebHashHistory } from "vue-router";
const routes = [
{
path : '/',
name : 'index',
components : {
default : () => import('@/views/index.vue'),
pc : () => import('@/views/index.vue'),
mobile : () => import('~/components/mobile/index.vue')
}
]
const router = createRouter({
history : createWebHashHistory(),
routes
})
export default router
2 条评论
我感觉还是用JS判断来的痛快 看是啥项目
几个页面的话肯定直接js跳转方便,但是涉及到多个页面的时候就比较麻烦了,直接在入口文件的地方判断移动和pc,进入移动端入口文件里面就不需要再判断别的了,就是移动端的组件