layui移动端适配_React移动端适配解决方案

696e0fa094793e7c1d3de3a43557107c.png

最近拿到新公司移动端的项目,是一个react app项目。我检查代码和公司蓝湖的设计图发现整个项目并没有搭配任何移动端适配方案,并且每个页面没有采用像素级还原,而是用一些百分比和flex来达到一些简单的适配。

这样开发一是实现效果很差,设置在一些区别比较大的手机上会出现显示上的bug,比如iphone5的小屏幕和iphone10的大屏上。二是开发上很麻烦,本来产品画好的产品图,把参数复制写进去就行了,但是现在开发使用产品图的参数就完全开发不了。

这时我想到了我开发小程序时使用的rpx,微信端设定好的适配方案,全部按宽750px来实现,微信会在不同的设备下为我们自动调整。按照这个思路我找到了淘宝弹性布局方案lib-flexiblepostcss-px2rem来实现React移动端项目750px的适配方案。

下面是详细实现:

第一步

我们把两个包下载下来

yarn 

第二步

在项目入口文件index.js引入lib-flexible

import 

图:

89840b16f5346ac9e5985cb1ad34661f.png

第三步

在webpack中配置postcss-px2rem

webpack.config.js

const 

6f0e98c0bef152771a6f1229aab8c142.png

第四步

注释掉模板index.html内的

<!-- 

create-react-app 的模板index.html在public下

图:

7d0370943f28f49e36395644b4575f62.png

最后调整蓝湖设计稿大小 输入750px

c8dc17f5dff00976817c9b697af564b3.png

实际效果 页面按钮样式:

.button

在 iphone6/7/8plus下 所有px自动转为适配的rem

e0150e0ce47a78a3a01d3b5216a9d96c.png

在iphone 5/SE下 又转为对应rem 整体效果完全不变

0bf2c5e6a772e5deb65a21f87a18796a.png

更新一下 最近发现一个问题

这样进行移动端适配后 自己写的样式虽然完全没有问题,但是如果使用Ant Design Mobile进行开发的话,蚂蚁金服的样式会出问题导致无法使用。

解决方案:

配置webpack的postcss-px2rem,让它不去检查/node_modules/,也就是不作用antd等引入的库。但是我去设置postcss-px2rem的exclude选项发现并没有起作用,翻博客发现,postcss-px2rem无法设置exclude排除项,然后有个人修改postcss-px2rem的源码,做了一个postcss-px2rem-exclude可以设置排除项(亲测有用)。

yarn 

修改webpack.config.js

const px2rem = require('postcss-px2rem-exclude');

 px2rem({ remUnit: 75 ,exclude:/node_modules/i}),

15468260400428436506474c9a0bcdb8.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值