vue项目pc端和移动端适配

这篇具有很好参考价值的文章主要介绍了vue项目pc端和移动端适配。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vue项目pc端和移动端适配

1、pc端适配

一、样式中根据设计稿确定缩放比例(可以设置全局或者部分页面)

二、监听窗口大小改变,设置根字体大小
created() {
// 获取当前设备的宽度,设置rem的根字体大小
let width = window.innerWidth;
width = width <= 1200 ? 1200 : width;
const htmlObj = document.getElementsByTagName(“html”)[0];
htmlObj.style.fontSize = width / 76.8 + “px”;

// 对resize事件进行浏览器兼容处理
if (document.createEvent) {
  var event = document.createEvent("HTMLEvents");
  event.initEvent("resize", true, true);
  window.dispatchEvent(event);
} else if (document.createEventObject) {
  window.fireEvent("onresize");
}

// 监听页面resize事件,重新设置rem的根字体大小
window.onresize = function () {
  let width = window.innerWidth;
  width = width <= 1200 ? 1200 : width;
  htmlObj.style.fontSize = width / 76.8 + "px";
};

},

三、使用时
如: height:px2rem(100px)

四、如果是部分页面使用,需要页面销毁时清理
destroyed() {
const htmlObj = document.getElementsByTagName(“html”)[0];
htmlObj.style.fontSize = “”;
window.onresize = null;
},

2、移动端项目适配

实现移动端适配步骤如下
1.先安装amfe-flexible和postcss-pxtorem
npm install amfe-flexible --save
npm install postcss-pxtorem --save
在main.js导入amfe-flexible
import ‘amfe-flexible’;
2.配置postcss-pxtorem ,可在vue.config.js、postcsssrc.js、postcss.config.js、其中之一配置,权重从左到右降低,没有则新建文件,只需要设置其中一个即可
在vue.config.js配置如下
module.export={
//…其他配置
css:{
loaderOptions:{
postcss:[
require(‘postcss-pxtorem’)({
rootValue:37.5,
propList:[‘‘]
})
]
}
}
}
在.postcssrc.js或postcss.config.js中配置如下:
module.exports = {
“plugins”: {
‘postcss-pxtorem’: {
rootValue: 37.5,
propList: [’
’]
}
}
}

rootValue根据设计稿宽度除以10进行设置,这边假设设计稿为375,即rootValue设为37.5;
propList是设置需要转换的属性,这边*为所有都进行转换。
测试结果:

css中设置某类宽度为375px:
.content{
width:375px;
}

运行后在浏览器可以发现已经转化为10rem,即375/设置的rootValue:
以上情况则说明postcss-pxtorem配置成功
html的字体大小跟随设备宽度进行改变,body跟随设备的dpr进行改变,这是amfe-flexible的实现,即说明配置成功。
说明,安装过程中可能会遇到以下报错:
1.安装配置后,发现rem并没有生效,解决办法:使用vue.config.js去配置,不要用postcss.config.js
2.抛错[object Object] is not a PostCSS plugin。报错原因:postcss-pxtorem版本太高,更改版本为5.1.1。npm install postcss-pxtorem@5.1.1

3、同时兼任pc和移动适配

通过配置两套不同路由和判断是否是移动端实现
1、写好两套路由
import Vue from “vue”;
import VueRouter from “vue-router”;

Vue.use(VueRouter);

//默认路由
export const routes = [
{
path: “/”,
redirect: “/home”,
},
];
//pc端的路由
export const pcRoutes = [
{
path: “/”,
redirect: “/home”,
},
{
path: “/home”,
name: “Home”,
component: () =>
import(/* webpackChunkName: “about” / “…/views/home/pc.vue”),
},
];
//移动端设备路由
export const mobileRoutes = [
{
path: “/”,
redirect: “/home”,
},
{
path: “/home”,
name: “Home”,
component: () =>
import(/
webpackChunkName: “about” */ “…/views/home/mobile.vue”),
},
];

const createRouter = () =>
new VueRouter({
scrollBehavior: () => ({ y: 0 }),
mode: “history”,
routes: routes,
});

const router = createRouter();

// Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465
export function resetRouter() {
const newRouter = createRouter();
router.matcher = newRouter.matcher; // reset router
}

export default router;

2、封装一个判断是否是移动端的方法
// 判断设备是否为移动端的方法
export const isMobile = () => {
return /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i.test(
navigator.userAgent
);
};

3、src目录下创建一个init.js文件用于判断机型从而添加相应的路由
import router from “./router”;
import { isMobile } from “./utils”;
import { pcRoutes, mobileRoutes } from “./router”;

// 判断当前设备的型号从而改变当前路由
router.addRoute(isMobile() ? mobileRoutes[1] : pcRoutes[1]);

4、最后在vue项目的入口文件main.js文件中引入init.js。
import “./init.js”;文章来源地址https://www.toymoban.com/news/detail-408459.html

到了这里,关于vue项目pc端和移动端适配的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 前端移动端布局自适应 及移动端和PC端共用一套代码注意事项

    前端移动端布局自适应 目录 一、自适应布局概念? 二、使用步骤 1. head标签里要写适用移动端 2. 自适应单位问题 3. CSS如何写? 总结 前言 移动端布局需要适应不同大小手机平板屏幕,所以字体图片等尺寸就要做到随着屏幕大小的变化去自适应,这样会给用户很好的体验感和

    2024年02月08日
    浏览(30)
  • 移动端和PC端对比【组件库+调试vconsole +构建vite/webpack+可视化echarts/antv】

    目录 移动端 antv f2 版本问题 jsx 经典配置 自动配置 vue 使用 bar  radar PC端 antv antv G6 Vue2 scss Echarts Vue3 radar React 原生echarts+TS ListChart(列表切换echarts图表,同类数据为x轴的bar) ListChart.tsx ListChart.css ListChartUtil.tsx Recharts​​​​​​​ D3 体量:Echarts支持 按需引用 灵活度:EC

    2024年02月11日
    浏览(35)
  • pc端与移动端适配 解决方案

    一般网站实现pc端与移动端适配的需求,方案有两个: 1、一套页面,从设计时就考虑到跨设备适配,响应式的一步到位; 2、开发两套页面,根据设备尺寸加载加载不同的资源,目前已经不常见了; 做一个响应式的页面。即只用一个链接,用媒体查询来控制样式。同一个链接

    2024年02月04日
    浏览(26)
  • h5响应式布局、PC和移动端适配方案

    春招真的是太卷了,让我怀疑春招到底在招谁(是我太菜惹qaq)。总之还是不能松懈下来,总结一下在实习期间遇到的h5的响应式布局、PC和移动端适配方案的选择以及一些问题。本文部分文案由chat-gpt编写,例如介绍响应式布局的文案(才不是因为我懒~)。 响应式布局是指

    2024年02月05日
    浏览(33)
  • 运行移动端和前端项目

    目录 一、运行小程序项目 1. 安装微信开发者工具 2. 运行HBuilderX工具 3. 导入小程序项目 二、运行前端项目 1. 初始化前端项目 2. 导入前端项目 3. 运行前端项目 4. 访问登录画面 Emos工程的3个项目已经运行起来了,现在把移动端和前端项目运行起来。         打开微信开发

    2024年02月09日
    浏览(27)
  • 响应式web-PC端web与移动端web(H5)兼容适配 选型方案

    背景 项目需要,公司已经有一套PC端web,需要做一套手机端浏览器可用的,但是又想兼容pc端,适配的web项目。 以下是查阅到响应布局现成的开源模版。根据自己技术栈,vue2,js来搜索相关的开源项目。 使用若依快速构建web应用程序,有单独的移动端项目。 RuoYi 是一个 Java

    2024年02月05日
    浏览(33)
  • 在设计web页面时,为移动端设计一套页面,PC端设计一套页面,并且能自动根据设备类型来选择是用移动端的页面还是PC端的页面。

    响应式设计,即移动端和PC端共用一个HTML模式,网站的程序和模板自动根据设备类型和屏幕大小进行自适应调整。这种方法我不喜欢,原因是不能很好保证各种客户端的效果,里面存在各种复杂的兼容性等问题。 我喜欢为不同的客户端写不同的模式,避免在响应式设计中可能

    2024年02月09日
    浏览(44)
  • VUE识别访问设备是pc端还是移动端

    有些网站需要区分手机端网页和pc端网页,做到不同设备访问不同的网页,增强用户的使用体验,可以在app.vue中作一个判断( navigator.userAgent ),然后跳转不同的路由。 navigator.userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求 的 用户代理头 的值。  例如:Moz

    2024年02月05日
    浏览(31)
  • Vue中如何进行移动端适配与响应式布局?

    如今,移动端适配与响应式布局已经成为Web开发中不可或缺的一部分。Vue.js作为一款流行的JavaScript框架,也提供了许多有用的工具和技术来实现移动端适配和响应式布局。在这篇文章中,我们将讨论如何在Vue.js中进行移动端适配与响应式布局,包括媒体查询、flexbox布局和第

    2024年02月09日
    浏览(31)
  • VUE pc端+移动端上传录音并上传(recorder-core)

    首先安装 npm install recorder-core 以下录音组件完整代码可复用 父页面引用该组件:

    2024年03月25日
    浏览(31)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包