zoukankan      html  css  js  c++  java
  • React--Ant Design按需加载

    1. 安装

    npm install antd --save
    

     或者

    yarn add antd
    

     2. 按需加载方式一:安装 babel-plugin-import

    npm install  babel-plugin-import --save
    

     .babelrc or babel-loader option:

    {
      "plugins": [
        ["import", {
          "libraryName": "antd",
          "libraryDirectory": "es",
          "style": "css" // `style: true` 会加载 less 文件
        }]
      ]
    }
    

     然后只需从 antd 引入模块即可,无需单独引入样式。

    // babel-plugin-import 会帮助你加载 JS 和 CSS
    import { DatePicker } from 'antd';
    

     等同于下面手动引入的方式。

    import DatePicker from 'antd/es/date-picker'; // 加载 JS
    import 'antd/es/date-picker/style/css'; // 加载 CSS
    

     按需加载,方式二:

    需要对 create-react-app 的默认配置进行自定义,这里我们使用 react-app-rewired

    1. 引入 react-app-rewired 并修改 package.json 里的启动配置

    yarn add react-app-rewired customize-cra --save    
    

     package.json:

    "scripts": {
       "start": "react-scripts start",//删掉替换为 react-app-rewired start 如下
       "start": "react-app-rewired start",
       "build": "react-scripts build",//删掉替换为 react-app-rewired build 如下
       "build": "react-app-rewired build",
       "test": "react-scripts test",  //删掉替换为 react-app-rewired test 如下
       "test": "react-app-rewired test",
    }
    

     2. 然后在项目根目录创建一个 config-overrides.js 用于修改默认配置。

    const { override, fixBabelImports } = require('customize-cra');
    
    module.exports = override(
        fixBabelImports('import', {
        libraryName: 'antd',
        libraryDirectory: 'es',
        style: 'css',
       }),
    );
    

     3.babel-plugin-import 是一个用于按需加载组件代码和样式的 babel 插件,安装它并修改 config-overrides.js文件(步骤2已修改)。

    yarn add babel-plugin-import --save
    

     4.移除前面在 src/App.css 里全量添加的 @import '~antd/dist/antd.css'; 样式代码,并且按下面的格式引入模块。

    // src/App.js
      import React, { Component } from 'react';
      import Button from 'antd/es/button';   //移除
      import { Button } from 'antd';   //按需引入即可
      import './App.css';
    
      class App extends Component {
        render() {
          return (
            <div className="App">
              <Button type="primary">Button</Button>
            </div>
          );
        }
      }
    

     5.这样就配置完成了,最后重启 npm start 访问页面,antd 组件的 js 和 css 代码都可以按需加载,提高网页性能。

  • 相关阅读:
    div的显示和隐藏
    asp.net使用My97 Date Picker时设置默认起始时间为n年之前的今天
    2的次幂表示【递归算法训练】
    怎样用JS获取ASP.NET服务器控件的客户端ID
    九度oj 题目1034:寻找大富翁
    CSS + DIV 让页脚始终保持在页面底部
    简单的鼠标可拖动div 兼容IE/FF
    web的各种前端打印方法之CSS控制网页打印样式
    CSS控制print打印样式
    专为控制打印设计的CSS样式
  • 原文地址:https://www.cnblogs.com/Super-scarlett/p/12489209.html
Copyright © 2011-2022 走看看