React 使用Ant Design组件2020年11月

2023-05-16

今天同事问我一个问题,说他搭的ant项目样式错乱。我去看了一下,愣是看了半天没发现问题原因。最终后来才发现是Ant Design组件配置的问题。我不得不在这里吐槽一下And Design这篇文档https://mobile.ant.design/docs/react/introduce-cn,写的真不怎么样,关键地方不讲,我一个工作几年的人第一次看都有点蒙。

当前时间是:2020年11月04日。不排除是因为react手脚架更新导致配置发生变化了,对应文档没来急更新。我几个月前搭过一个使用Ant 组件的react项目,当时感觉没花多少时间,很简单。今天就把全新搭建过程记录下来,方便新手入门。

正片开始

吐槽完了 ,舒服多了,现在就开始吧。

 

create-react-app创建一个新的react项目

命令行中执行下面命令创建项目。

npx create-react-app ant-demo

这个过程有点久,我电脑需要2到5分钟左右。

显示这样就创建成功啦。

安装ant design组件

npm install antd-mobile --save

 安装没什么好说的,执行一下就好了。

配置入口文件html

public/index.html的头部加入以下内容:

<!-- set `maximum-scale` for some compatibility issues -->
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no" />
  <script src="https://as.alipayobjects.com/g/component/fastclick/1.0.6/fastclick.js"></script>
  <script>
    if ('addEventListener' in document) {
      document.addEventListener('DOMContentLoaded', function() {
        FastClick.attach(document.body);
      }, false);
    }
    if(!window.Promise) {
      document.writeln('<script src="https://as.alipayobjects.com/g/component/es6-promise/3.2.2/es6-promise.min.js"'+'>'+'<'+'/'+'script>');
    }
  </script>

修改以后的完整代码如下:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="theme-color" content="#000000" />
    <meta
      name="description"
      content="Web site created using create-react-app"
    />
    <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
    <!--
      manifest.json provides metadata used when your web app is installed on a
      user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
    -->
    <link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
    <!--
      Notice the use of %PUBLIC_URL% in the tags above.
      It will be replaced with the URL of the `public` folder during the build.
      Only files inside the `public` folder can be referenced from the HTML.

      Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
      work correctly both with client-side routing and a non-root public URL.
      Learn how to configure a non-root public URL by running `npm run build`.
    -->
    <title>React App</title>
    <!-- set `maximum-scale` for some compatibility issues -->
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no" />
  <script src="https://as.alipayobjects.com/g/component/fastclick/1.0.6/fastclick.js"></script>
  <script>
    if ('addEventListener' in document) {
      document.addEventListener('DOMContentLoaded', function() {
        FastClick.attach(document.body);
      }, false);
    }
    if(!window.Promise) {
      document.writeln('<script src="https://as.alipayobjects.com/g/component/es6-promise/3.2.2/es6-promise.min.js"'+'>'+'<'+'/'+'script>');
    }
  </script>
  </head>
  <body>
    <noscript>You need to enable JavaScript to run this app.</noscript>
    <div id="root"></div>
    <!--
      This HTML file is a template.
      If you open it directly in the browser, you will see an empty page.

      You can add webfonts, meta tags, or analytics to this file.
      The build step will place the bundled scripts into the <body> tag.

      To begin the development, run `npm start` or `yarn start`.
      To create a production bundle, use `npm run build` or `yarn build`.
    -->
  </body>
</html>

配置按需加载(重点)

重点来了,官方文档就是这里写的不太清楚,对新手不友好。

先安装下面已的组件。

npm install react-app-rewired customize-cra babel-plugin-import

在根目录新建config-overrides.js文件

此配置文件录入以下内容:

const {override, fixBabelImports} = require('customize-cra');

module.exports = override(
    fixBabelImports('import', {
        libraryName: 'antd-mobile',
        style: 'css',
    }),
);

修改packge.json 的配置文件

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

至此配置完成啦!!! 

测试效果

修改App.js为以下内容

import { Button, WhiteSpace, WingBlank } from 'antd-mobile';
import React from "react";

function App() {
  return (
    <WingBlank>
    <Button>default</Button><WhiteSpace />
    <Button disabled>default disabled</Button><WhiteSpace />

    <Button type="primary">primary</Button><WhiteSpace />
    <Button type="primary" disabled>primary disabled</Button><WhiteSpace />

    <Button type="warning">warning</Button><WhiteSpace />
    <Button type="warning" disabled>warning disabled</Button><WhiteSpace />

    <Button loading>loading button</Button><WhiteSpace />
    <Button icon="check-circle-o">with icon</Button><WhiteSpace />
    <Button icon={<img src="https://gw.alipayobjects.com/zos/rmsportal/jBfVSpDwPbitsABtDDlB.svg" alt="" />}>with custom icon</Button><WhiteSpace />
    <Button icon="check-circle-o" inline size="small" style={{ marginRight: '4px' }}>with icon and inline</Button>
    <Button icon="check-circle-o" inline size="small">with icon and inline</Button>
    <WhiteSpace />

    {/* <Button activeStyle={false}>无点击反馈</Button><WhiteSpace /> */}
    {/* <Button activeStyle={{ backgroundColor: 'red' }}>custom feedback style</Button><WhiteSpace /> */}

    <WhiteSpace />
    <Button type="primary" inline style={{ marginRight: '4px' }}>inline primary</Button>
    {/* use `am-button-borderfix`. because Multiple buttons inline arranged, the last one border-right may not display */}
    <Button type="ghost" inline style={{ marginRight: '4px' }} className="am-button-borderfix">inline ghost</Button>

    <WhiteSpace />
    <Button type="primary" inline size="small" style={{ marginRight: '4px' }}>primary</Button>
    <Button type="primary" inline size="small" disabled>primary disabled</Button>
    <WhiteSpace />
    <Button type="ghost" inline size="small" style={{ marginRight: '4px' }}>ghost</Button>
    {/* use `am-button-borderfix`. because Multiple buttons inline arranged, the last one border-right may not display */}
    <Button type="ghost" inline size="small" className="am-button-borderfix" disabled>ghost disabled</Button>
  </WingBlank>
  );
}

export default App;

 

完美解决了

 

源码下载(我配置的这套):

https://download.csdn.net/download/lxyoucan/13087671

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React 使用Ant Design组件2020年11月 的相关文章

  • 如何测试 ANT 中的目录是否为空?

    如何测试 ant 中的目录是否为空 您可以使用pathconvert http ant apache org manual Tasks pathconvert html任务来做到这一点 与setonempty财产
  • build.xml 将日期和时间设置为文件名

    我想设置带有日期和时间的文件名 因此我想创建名为的文件behat 20140913 195915 html但是下面的示例将名称设置为behat yyyymmdd hhiiss html 有人知道问题的解决办法吗 我跟着这个例子 http a
  • javadoc从类中排除一些公共方法

    我必须将类的一些公共方法排除在 javadoc 之外 我尝试了 Chris Nokleberg 的 ExcludeDoclet sixlegs 但 doclet 给出了一个小问题 如果类中的其他方法返回 List 或任何其他泛型 返回类型不
  • android-sdk/tools/ant/build.xml:698: 返回 null: 1

    我正在尝试测试 Android 版本 以确保不会发生意外情况 尝试从命令行使用 ant 构建时 usr local bin ant release BUILD FAILED android sdk tools ant build xml 6
  • Groovy 与 Grape 和 AntBuilder 类加载器问题

    我想使用 groovy 编写一个小 ftp 脚本 并找到了这篇文章http www hhhhq org blog 2009 05 01 ftp using groovy and ant http www hhhhq org blog 200
  • 使用 Proguard 混淆 ActionBarSherlock

    我正在尝试使用混淆我的 Android 应用程序proguard and ant eclipse proguard从来不工作 总是失败error 1 但我越来越class file unexpectedly contains class 到
  • 如何使用蚂蚁?

    我一直试图了解 Ant 的用途 但我仍然不明白 有人可以给我一个使用 Ant 的用例吗 我可以尝试看看 Ant 为何有用以及我可以用它做什么 我在 Eclipse 中进行 Java 开发 并且刚刚开始使用 servlet 和 Google
  • 在 Java 构建过程中更改常量的最佳方法

    我继承了一个在 Tomcat 下运行的 Java 应用程序 servlet 由于历史原因 根据应用程序的部署位置 本质上是品牌问题 代码具有不同的 外观和感觉 选项 有几个常量控制这个品牌过程 它们具有不同的功能 不应压缩为单个常量 即 B
  • 如何检查文件是否存在,如果不存在则终止构建?

    如果文件不存在 如何停止构建并通知用户 我知道如果文件存在 我可以使用可用任务来设置属性 但我不确定如何停止构建并回显某些内容 如果可能的话 我想坚持核心任务 您可以使用任务失败 http ant apache org manual Tas
  • 如何根据运行的 jar 的结果让我的 ant 任务通过或失败?

    我正在运行 CrossCheck 无浏览器 js 单元测试 作为 ant 脚本的一部分 如果 CrossCheck 测试失败 我希望 ant 报告失败 这是 build xml 中的相关部分
  • 错误:执行命令“ant”,请确保已安装 ant 并将其添加到路径中

    我正在使用 Cordova 进行移动应用程序开发 我已经使用 npm 命令安装了 Cordova 安装后 我创建了一个 cordova 项目 每当我尝试向项目添加平台 android 时 它都会抛出以下错误 错误 执行命令 ant 请确保已
  • 有没有什么好的工具可以查看和浏览ant构建文件?

    我发现很难读取 ant 构建文件 特别是如果构建文件包含大量导入文件 例如属性文件和其他 xml 构建文件 因此 我想知道是否有一些好的工具可以提供帮助 例如在 IDE 中查看和浏览源代码 提前致谢 Try 盛大 这里 http www g
  • 由于主项目复杂的 lib-project 依赖关系,Jenkins 服务器上的自动化 Android UI 测试失败

    简单总结一下 我的项目结构如下 A and B是 android lib projects 其中B依赖于取决于A C 普通的android项目 取决于B T是测试项目C 我的詹金斯服务器上相应地有两个项目 一个用于C和一个用于T 它们有自己
  • Ant 中回显目标描述

  • 如何使用 Apache Ant 将 Java 文件编码为 UTF-8?

    在我的 build xml 文件中 我通过 cxf 获取一些 Java 文件 其中一些 Java 文件需要使用 UTF 8 进行编码 如何使用 Ant 将编码更改为 UTF 8 PS 我找到了如何将 javac 的编码设置为 UTF 8 的
  • Ant EXEC 无法运行 bash 脚本

    我正在尝试使用 ant 来运行 bash 脚本 我发现行政指令是完成这项工作的工具 我创建了一个 bash 脚本 test sh 在我的蚂蚁目标中我添加了
  • Jetty 提供静态内容所需的最少文件集?

    背景 免责声明 I have veryJava 经验很少 我们之前在 Ant 构建期间使用了 Jetty 6 的包装版本来处理按需静态内容 JS CSS 图像 HTML 因此我们可以使用 PhantomJS 针对 HTTP 托管环境运行单元
  • IntelliJ 对于 Java 项目使用的默认构建过程是什么?

    直接从 IntelliJ 中的 IDE 构建 Java 项目非常好 它速度很快 而且很有效 我无法找到任何有关 IntelliJ 如何进行这些默认构建的文档 我猜它使用Ant 我想做的是为下载我的项目的任何人自动化这个快速 轻松的构建过程
  • 更改 Clover 仪表类的位置

    我正在使用 Clover 2 5 并且我有一个可以打包二进制文件的目标 然而 目前看来 Clover 检测类是在与我希望打包在 jar 中的未检测类相同的输出目录中生成的 我该如何创建一个 jar 以便不包含检测的类 有没有办法改变检测类的
  • 排除jar中的文件进入apk

    我最近添加了一些新的罐子到我的android项目 一些 jar 包含 version properties 其中之一甚至包含 README TXT 我如何告诉 eclipse adt ant 排除文件进入 apk 显然我可以解压 apk 删

随机推荐

  • java.lang.UnsatisfiedLinkError 解决方法

    就像这样的错误 java lang UnsatisfiedLinkError dalvik system PathClassLoader DexPathList zip file 34 data app com pckgname live
  • matlab并行运算方法

    matlab并行运算方法 matlab在计算大数据内存以及大矩阵运算时 xff0c 单核运算显然无法满足高速的运算需求 其实matlab提供多核运算的解决方案 xff0c 这里先介绍最简单的两种 parfordistributedspmd
  • 关于魅族手机 安装APP提示安装失败 更新包不兼容的解决方法

    转载请以链接形式标明出处 xff1a http blog csdn net lxk 1993 article details 52943855 本文出自 lxk 1993的博客 xff1b 关于魅族手机安装app提示安装失败 xff0c 更
  • VxWorks 操作系统简介

    实时多任务操作系统是能在确定的时间内执行其功能 xff0c 并对外部的异步事件作出响应的计算机系统 多任务环境允许一个实时应用作为一系列独立任务来运行 xff0c 各任务有各自的线程和系统资源 VxWorks系统提供多处理器间和任务间高效的
  • linux用crontab运行sh和jar包遇到的问题

    1 无论是sh文件还会jar包一定需要给出绝对路径 xff0c 我本来以为在它们所在的文件夹下设置crontab就可以不用设置绝对路径了 xff0c 但是不可以 xff01 一定一定要写绝对路径 xff01 xff08 可以用pwd命令查看
  • javascript常用代码段

    一些我在开发中常用的代码段 xff0c 方便自己copy xff0c 分享给大家 xff0c 持续更新 JS延时执行一次 setTimeout function 执行代码 1500 定时刷新 xff0c 指定时间段执行 xff08 循环执行
  • (2020)React Native入门-React Navigation 5.x+react-native-vector-icons+夜间模式

    知识点GET React Navigation 5 x安装react native vector icons安装与配置React Navigation传参和跳转夜间模式的支持演示 视频教程 详细了解可以看我录的视频 xff1a https
  • Android10中Webview显示Description:net::ERR_CLEARTEXT_NOT_PERMITTED解决办法

    开发的APP xff0c 我的手机Android 7的开发调试都挺好的 发布给同事测试 xff0c 就报错 xff0c 无法正常加载页面 报错 xff1a Description net ERR CLEARTEXT NOT PERMITTE
  • React全局状态管理(state)之Context的使用方法

    状态之间传递 xff0c 一般由父组件向下传递给子组件 如果有的状态是全局都要用的话 xff0c 这样专递就太麻烦了 谈到全局状态管理 xff0c 不得不说Redux xff0c 很有名气 xff0c 个人认为比较适合大型项目开发 没做过什
  • Vue实现的打字通

    web版在线打字程序 演示地址 xff1a http itkey fun index jsp 代码 xff1a lt html gt lt head gt lt meta http equiv 61 34 Content Type 34 c
  • 华为低版本手机无法正常安装软件(失败原因:验证失败)解决办法

    手里有个备用机4年前的华为手机 xff0c 安装软件的时候发现安装不了 失败原因 验证失败 这就难受啦 xff0c 老手机不当手机吗 xff1f 每次打开APP都提示需要升级 xff0c 但是点了升级又升级不了 xff0c 好糟心啊 我本身
  • React Native拿来主义1-Dating_UI(聊天UI)

    做聊天应用可以借鉴一下 效果展示 React Native拿来主义1 Dating 聊天页面 会话列表页面 GITHUB https github com Minte grace Dating UI 源码下载方式2 https downlo
  • 2018年,Java程序员转型大数据开发,是不是一个好选择?

    近日网上有一篇关于Java程序员职场生存现状的文章 2017年 Java 程序员 xff0c 风光背后的危机 xff0c 在Java程序员圈子里引起了广泛关注和热议 2017年 xff0c Java 程序员面临更加激烈的竞争 不得不承认 x
  • Oracel如何强行断开连接的用户--ORA-01940:无法删除当前连接的用户

    数据重新导入 xff0c 有的时间需要删除用户重新创建 xff0c 这样数据比较干净一些 但是删除用户时遇到如下的错误 ORA 01940 无法删除当前连接的用户 查询当前连接用户 select username sid serial pa
  • oracle 建视图引用其他用户的表授权

    oracle 建视图引用其他用户的表授权eg grant select on tuser to USR JSSSFJGGDZYXX BX with grant option 要加上 with grant option选项 a用户登录 gra
  • CentOS7防火墙管理与配置

    有一台服务器 xff0c 上面部署了好几个服务 xff0c 涉及端口比较多 xff0c 想想配置好麻烦 xff0c 当时想偷懒就把防火墙关闭了 安全测试老是一堆问题 xff0c 老是要升级各种tomcat xff0c ssh服务之类的 xf
  • React Native 中布局入门

    我在做布局的时候 xff0c 大部分时间看这个例子就够了 xff0c 分享给大家 Properties To choose the right layout for a component 39 s children we must mak
  • clover黑苹果正常安装,安装完后找不到Mac OS启动图标的解决办法

    身边有小伙伴没有苹果电脑 xff0c 但是又想体验Mac os 帮几个朋友安装过黑苹果 其中遇到两次 xff0c 系统安装正常 xff0c 能正常进桌面 xff0c 重启以后就找不到启动图标了 一开始不知道什么原因 xff0c 百度搜也没搜
  • Windows2000系统下载安装,怀念一下

    今天突然心血来潮 xff0c 想怀念一个windows2000 操作系统 好像是我接触的第一个操作系统了 xff0c 当年为了研究windows 2000系统的安装方法 xff0c 看了好多书 不对 xff0c 貌似之前也用过windows
  • React 使用Ant Design组件2020年11月

    今天同事问我一个问题 xff0c 说他搭的ant项目样式错乱 我去看了一下 xff0c 愣是看了半天没发现问题原因 最终后来才发现是Ant Design组件配置的问题 我不得不在这里吐槽一下And Design这篇文档https mobil