React移动端适配

创建项目

修改App.jsx(即App.js)文件

import './App.css';
import './App.less'
import './tools/rem'

function App() {
  return (
    <div className="App">
        <div className="demo">
          这是一个项目
        </div>
    </div>
  );
}

export default App;

修改App.less文件

 /* Less */
 @color: #999;
 @bgColor: skyblue;//不要添加引号
//  @width: 80%;
.demo{
    color: @color;
    background-color: @bgColor;
    width: 675px;
    height: 50px;
    margin: 0 auto;
    text-align: center;
}

css文件内容(过会不用)

.demo{
  color: #999;
  background-color: skyblue;
  width: 500px;
  height: 50px;
  margin: 0 auto;
  text-align: center;
}

效果展示

在这里插入图片描述
手机展示
在这里插入图片描述

iPad展示

安装依赖

安装依赖1

yarn add postcss-px2rem customize-cra react-app-rewired

在这里插入图片描述

安装依赖2

yarn add @craco/craco

在这里插入图片描述

安装依赖3

yarn add craco-less

在这里插入图片描述

安装依赖4

yarn add babel-plugin-import

在这里插入图片描述

根目录下建立config-overrides.js

const { override, fixBabelImports, addPostcssPlugins, addLessLoader } = require('customize-cra');
module.exports = override(
  fixBabelImports('import', {
    libraryName: 'antd-mobile',
    style: 'css',
  }),
  addPostcssPlugins(
      [
          require("postcss-px2rem")({remUnit:375/10})
      ]
  )
);

更改package.json启动命令

  "scripts": {
    "start": "react-app-rewired  start",
    "build": "react-app-rewired  build",
    "test": "react-app-rewired  test",
    "eject": "react-app-rewired  eject"
  },

在这里插入图片描述

编写js文件并且引用

根据我个人习惯,src下创建了文件夹,文件夹写的js文件
src->tools->rem.js

function adapter() {
  // 获取手机横向的设备独立像素
  const dip = document.documentElement.clientWidth
  //计算根字体大小(100是根据我们自己指定的,375是设计稿宽度)
  const rootFontSize = dip / 20
  // 设置根字体
  document.documentElement.style.fontSize = rootFontSize + 'px'
}
adapter()
window.onresize = adapter

写完后在App.js文件引用

import './tools/rem'

在这里插入图片描述

断开css引入,用less效果不变

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
适配方法很多,这是其中一种react的适配方法,通过调用库进行实现,这种方法可以写px直接映射rem。中间引用了几个其他库,是为了完成less引用。
本次分享了less引入与移动端适配。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值