位置: IT常识 - 正文

vue项目pc端和移动端适配(vue移动和pc两套代码)

编辑:rootadmin
vue项目pc端和移动端适配 vue项目pc端和移动端适配1、pc端适配

推荐整理分享vue项目pc端和移动端适配(vue移动和pc两套代码),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:用vue做pc端适合吗,vue项目pc端和移动端适配,vue pc端,vue移动端和pc端写法一样吗,vue pc端,vue项目pc端和移动端适配,vue项目pc端和移动端多适配,vue移动端和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; }

vue项目pc端和移动端适配(vue移动和pc两套代码)

运行后在浏览器可以发现已经转化为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.jiuchutong.com/zhishi/285052.html 转载请保留说明!

上一篇:应付债券的会计帐务怎么处理?(应付债券的会计处理例题)

下一篇:cuda常见报错(cuda completed with errors)

  • 消费型增值税的含义
  • 发票验旧日期是什么意思
  • 抵扣认证的发票怎么查询
  • 银行基本户可以变更成一般户吗
  • 租车纳税
  • 耕地转让权是什么意思
  • 土地增值税清算规程实施细则
  • 小规模纳税人销售农产品税率是多少
  • 预收款未开票账务处理
  • 咨询服务企业发展瓶颈期
  • 装修计入固定资产
  • 开个人普发票需要什么资料?
  • 印花税减免性质代码和项目名称小规模
  • 面条适用的增值税率是
  • 资产处置收益属于其他收益吗
  • 应付职工薪酬调到其他应付款
  • 福利费不需要发票记账吗
  • 手把手教你win7换主板不重装系统的方法
  • 调整低电量通知怎么设置
  • 销售净利率的计算公式有哪些
  • 股权和投票权的关系是什么关系
  • 全员劳动生产率怎么计算出来的
  • tkinter美观界面
  • 如何快速判断
  • 收到预付款计入什么科目
  • win10右键失灵解决办法
  • php nl2br
  • 收到工程款怎么做账务处理
  • arthas常用命令
  • nginx同一个端口设置两个网站
  • php 抓取别的网站的内容
  • 不锈钢广告牌制作价格
  • 产品报废进项税转出
  • 微信支付高速通行费怎么开电子发票
  • function函数的定义
  • before跟after区别
  • 生态位模型原理
  • 无形资产商标权摊销
  • 汇兑损益是资产类科目
  • 增值税抵扣进项税额什么意思
  • 社会团体不属于财政拨款的对象
  • php用户评论
  • 票据背书转让会计处理
  • 食堂支出无发票
  • 零申报不报税有什么后果
  • 我有朋友吗朋友圈说说
  • sqlserver查询时报00bop错误
  • 采用权益法核算的长期股权投资时,对于被投资企业
  • 工会经费税务代收是什么意思
  • 回扣发票能查出来么
  • 企业合并的账务处理
  • 固定资产登记在三栏明细账可以吗
  • 外币账户的钱怎么转成人民币
  • 报考中级会计师考几科
  • 机动车临时号牌怎么贴
  • 汇算清缴的会计分录怎么做
  • 股权转让可行性
  • 出口退税免抵退税额要交城建税吗
  • 涉外收入申报单怎么填
  • 咨询服务费可以全额扣除吗
  • 土地使用权出资是什么意思
  • 上月计提少了怎么办
  • 金税盘税费减免分录
  • 待抵扣税额怎么做分录
  • 小企业会计准则主要按照什么计量
  • 会议服务公司名称大全
  • mysim和innodb
  • Win8系统筛选器Smartscreen阻止恶意程序运行
  • windows xp无法更改密码
  • 用U盘安装系统重启后进不去
  • win8更新80072efe
  • opengl 位图
  • nodejs跳转到指定页面
  • css里注释
  • node.js express中app.param的用法详解
  • c# datetime.date
  • jquery table
  • javascript异步编程
  • 安卓获取图片路径
  • 税务催报通知书怎么接收
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设