vue項(xiàng)目同時(shí)兼容pc和移動端的解決方式
介紹:
公司要求vue開發(fā)的項(xiàng)目,既有移動端又有pc端,但是移動端和pc端展示的內(nèi)容不一樣,同一個(gè)組件樣式也不一樣,移動端展示內(nèi)容比pc端少,那這個(gè)時(shí)候在一個(gè)項(xiàng)目種怎么做的?
解決方式:
路由寫兩份,一份移動端的,一份pc端的,這兩份路由地址相同,對應(yīng)的組件不同,在路由的入口文件里去判斷渲染pc的路由還是移動端的路由
import Vue from 'vue'; import Router from 'vue-router'; import { routerM } from './routerM'; import { routerPC } from './routerPC'; Vue.use(Router); // 是否為手機(jī)端 const ISMOBILE = function () { 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; }; // 創(chuàng)建路由實(shí)例 const router = new Router({ mode: 'history', base: process.env.BASE_URL, fallback: false, // 這里判斷后選擇使用移動端的路由還是pc端的路由 routes: ISMOBILE() ? routerM : routerPC, }); export default router;
router下routerM.js和routrPC.js代碼:
// routerPC.js import Layout from '@/layout' export const routerPC = [ { path: '/login', component: () => import('@/views/pc/login/index'), hidden: true }, ]
// routerM.js export const routerM = [ { path: '/login', component: () => import('@/views/mobile/login/index.vue'), hidden: true }, ]
可以看出是寫了兩份組件,導(dǎo)入組件時(shí)文件路徑只有pc和mobile兩個(gè)單詞的區(qū)別。
拓展
同樣的,當(dāng)樣式需要寫兩份的時(shí)候,也可以在main.js中按需引入
// 是否為手機(jī)端 const 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 ); // PC端和移動端的公共樣式 import '@public/css/common.less'; // 移動端引入公共樣式 if (flag) { require('@/assets/css/mobileCommon.less'); }
總結(jié)
到此這篇關(guān)于vue項(xiàng)目同時(shí)兼容pc和移動端的解決方式的文章就介紹到這了,更多相關(guān)vue同時(shí)兼容pc和移動端內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue使用WEB自帶TTS實(shí)現(xiàn)語音文字互轉(zhuǎn)的操作方法
這篇文章主要介紹了vue使用WEB自帶TTS實(shí)現(xiàn)語音文字互轉(zhuǎn),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-01-01在vue中獲取token,并將token寫進(jìn)header的方法
今天小編就為大家分享一篇在vue中獲取token,并將token寫進(jìn)header的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09vue.js頁面加載執(zhí)行created,mounted的先后順序說明
這篇文章主要介紹了vue.js頁面加載執(zhí)行created,mounted的先后順序說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11vue、react等單頁面項(xiàng)目應(yīng)該這樣子部署到服務(wù)器
這篇文章主要介紹了vue、react等單頁面項(xiàng)目應(yīng)該這樣子部署到服務(wù)器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01Vue.js項(xiàng)目在apache服務(wù)器部署問題解決
本文主要介紹了Vue.js項(xiàng)目在apache服務(wù)器部署問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06Vue+Element-U實(shí)現(xiàn)分頁顯示效果
這篇文章主要為大家詳細(xì)介紹了Vue+Element-U實(shí)現(xiàn)分頁顯示效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11Element?Plus組件Form表單Table表格二次封裝的完整過程
一般在后臺管理系統(tǒng)的開發(fā)中,都會遇到很多table,但每一次都去引入el-table就會導(dǎo)致代碼十分冗余,所以基于組件做一下二次封裝成自己需要的組件就十分nice,下面這篇文章主要給大家介紹了關(guān)于Element?Plus組件Form表單Table表格二次封裝的相關(guān)資料,需要的朋友可以參考下2022-09-09