react和antd项目教程(React引入antd-mobile+postcss搭建移动端)
类别:编程学习 浏览量:1441
时间:2021-10-26 11:40:49 react和antd项目教程
React引入antd-mobile+postcss搭建移动端安装antd-mobile
全局引入npm install antd-mobile --save
在App.js
引入css
import 'antd-mobile/dist/antd-mobile.css';
在jsx
使用antd组件
import React from 'react'; import { Button } from 'antd-mobile'; const index = () => { return ( <li> <Button type="primary">primary</Button> </li> ); } export default index;
npm install babel-plugin-import -s
安装插件,覆盖webpack
配置
customize-cra配置api文档
npm install react-app-rewired customize-cra -s
package.json
进行更改命令方式
"scripts": { "start": "react-app-rewired start", "build": "react-app-rewired build", "test": "react-app-rewired test", "eject": "react-app-rewired eject" },
在根目录新建config-overrides.js
const { override, fixBabelImports } = require('customize-cra'); module.exports = override( fixBabelImports('import', { libraryName: 'antd-mobile', style: 'css', }), );
在App.js
删除之前引入的css
校验是否按需引入
npm install lib-flexible postcss-px2rem-exclude --save
index.js
导入
import 'lib-flexible'
修改config-overrides.js
文件
const { override, fixBabelImports, addPostcssPlugins, addWebpackAlias} = require('customize-cra'); const path = require("path"); module.exports = override( fixBabelImports('import', { libraryName: 'antd-mobile', style: 'css', }), addPostcssPlugins( [require("postcss-px2rem-exclude") ( { remUnit: 75, //设计图大小 remPrecision: 2, //只转换到两位小数 exclude: /node_modules/i //插件不需要转rem } ) ] ), addWebpackAlias({ "@": path.resolve(__dirname, "src") }) );
如果你需要使用less
/
自定义主题
npm install less less-loader -s
如果项目启动报错,是因为less-loader
版本过高,需要卸载,安装低版本
npm install less-loader@5.0.0 -s
坑! 需要注意顺序
const { override, fixBabelImports, addPostcssPlugins, addWebpackAlias, addLessLoader } = require('customize-cra'); const path = require("path"); module.exports = override( fixBabelImports('import', { libraryName: 'antd-mobile', style: true, //默认为'css' }), addLessLoader({ javascriptEnabled: true, modifyVars: { "@brand-primary": "#1DA57A" }, //自定义主题 }), addPostcssPlugins( [require("postcss-px2rem-exclude") ( { remUnit: 75, //设计图大小 remPrecision: 2, //只转换到两位小数 exclude: /node_modules/i //插件不需要转rem } ) ] ), addWebpackAlias({ "@": path.resolve(__dirname, "src") }) );
补充:解决react项目引入antd-mobile导致postcss配置px转rem失效问题
今天使用了一下antd-mobile发现我之前配置的postcss失效了,防止下次踩坑记录一下解决方案
解决方案:在config-overrides.js文件里重写postcss,加入如下代码
npm下载以下模块
npm i react-app-rewire-postcss postcss-px2rem-exclude -S
const { override, fixBabelImports, addWebpackAlias, addDecoratorsLegacy, } = require("customize-cra"); const path = require("path"); const rewirePostcss = require("react-app-rewire-postcss"); module.exports = override( // 配置按需加载 fixBabelImports("import", { libraryName: "antd-mobile", style: "css", }), // 配置文件别名 addWebpackAlias({ "@": path.resolve(__dirname, "src"), "@scss": path.resolve(__dirname, "src/assets/scss"), "@images": path.resolve(__dirname, "src/assets/images"), "@views": path.resolve(__dirname, "src/views"), "@network": path.resolve(__dirname, "src/network"), "@store": path.resolve(__dirname, "src/store"), "@components": path.resolve(__dirname, "src/components"), }), addDecoratorsLegacy(), (config, env) => { // 重写postcss rewirePostcss(config, { plugins: () => [ require("postcss-flexbugs-fixes"), require("postcss-preset-env")({ autoprefixer: { flexbox: "no-2009", }, stage: 3, }), require("postcss-px2rem-exclude")({ // 设计稿宽度/10 remUnit: 1080 / 10, exclude: /node-modules/i, }), ], }); return config; } );
以上就是React引入antd-mobile+postcss搭建移动端的详细内容,更多关于React搭建移动端的资料请关注开心学习网其它相关文章!
您可能感兴趣
- react的基本知识(React中refs的一些常见用法汇总)
- react常用设计模式(提高React界面性能的十个技巧)
- react中state的作用是什么(React中useEffect 与 useLayoutEffect的区别)
- react怎么绑定state(react纯函数组件setState更新页面不刷新的解决)
- react子组件的动态参数(浅谈React Component生命周期函数)
- react 使用实例(React+高德地图实时获取经纬度,定位地址)
- react和antd项目教程(React引入antd-mobile+postcss搭建移动端)
- 使用react生命周期的常见情况(react+ts实现简单jira项目的最佳实践记录)
- reacthooks用法(详解React Hooks是如何工作的)
- html5创作(HTML5录音实践总结Preact)
- reacthooks基础使用(React 小技巧教你如何摆脱hooks依赖烦恼)
- vscode react插件(基于visual studio code + react 开发环境搭建过程)
- react怎么使用父组件(关于antd tree和父子组件之间的传值问题react 总结)
- vue中的ref(Vue3.0中Ref与Reactive的区别示例详析)
- react加载优化(React星星评分组件的实现)
- react动态创建菜单并实现局部刷新(使用react-virtualized实现图片动态高度长列表的问题)
- 你还没有升职吗 他竟因为几套激励理论,升职了(你还没有升职吗)
- 某知名企业绩效管理体系及薪酬分配体系操作手册(某知名企业绩效管理体系及薪酬分配体系操作手册)
- 职场人改不掉这4个习惯,只会越混越穷,一辈子也翻不了身(职场人改不掉这4个习惯)
- 华为 联想等46家公司笔试面试题,涉及各行各业,建议收藏(联想等46家公司笔试面试题)
- ()
- ()
热门推荐
- 用docker搭建在线开发平台(docker部署蜗牛影院系统详细流程分析)
- jquery中index()
- 阿里云盘8月永久激活码(再分享6个可无限激活阿里云盘邀请码,不信你不能激活阿里云盘)
- sql语句按字段排序(SQL语句实现表中字段的组合累加排序)
- mysql8.0安装教程win10(Windows10下mysql 8.0.22 安装配置方法图文教程)
- 云服务器无法访问网站(网站放在香港云服务器上,出现卡顿怎么解决?)
- html5标签图片(HTML5图片层叠的实现示例)
- ASP.NET中application对象的用法
- http404解决方案(http403禁止访问怎么解决?http403禁止访问错误原因汇总)
- 自制cssdiv导航栏(css利用transform skewX制作平行四边形导航菜单)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9