蚂蚁设计页面重载css渲染延迟

Posted

技术标签:

【中文标题】蚂蚁设计页面重载css渲染延迟【英文标题】:Ant design page reloading css rendering delay 【发布时间】:2020-06-09 10:11:48 【问题描述】:

我将我的 react TypeScript 项目用于ant-design,我在重新加载页面时遇到了一些问题,css loading delay,有什么原因吗?

我将main.css 导入到

@import './../node_modules/antd/dist/antd.css'; 

【问题讨论】:

【参考方案1】:

其实,基于And Design Doc关于入门,你可以使用babel plugin来自动加载使用过的组件,如下所示,这是一个推荐的方式:

// .babelrc or babel-loader option

  "plugins": [
    ["import",  "libraryName": "antd", "libraryDirectory": "es", "style": "css" ] // `style: true` for less
  ]

通过使用这种方式(来自文档):

这允许你从 antd 中导入组件,而无需手动导入相应的样式表。 antd babel 插件会自动导入样式表。

这样就可以轻松导入组件,无需手动加载 CSS,如下所示:

import  Button  from 'antd';

但是如果你不想使用上面的插件,你可以使用 Ant Desing 组件,方法是在每个组件中导入它的 CSS,如下所示:

import React from 'react';
import Button from 'antd/es/button';
import 'antd/es/button/style/css'; // <<=== this way
import './CustomButton.css';

const CustomButton = () => (
  <div className="custom-button">
    <Button type="primary">
      Button
    </Button>
  </div>
);

还有另一种方法,使用你自己的 CSS 或 SCSS 或 LESS,但在你的组件 CSS 系统的顶部导入组件 CSS,就像下面完全一样的文档:

// the custom component
import React from 'react';
import Button from 'antd/es/button';
import './CustomButton.css';

const CustomButton = () => (
  <div className="custom-button">
    <Button type="primary">
      Button
    </Button>
  </div>
);
// the CustomButton.css file
@import '~antd/es/button/style/css';

.custom-button 
  background-color: red; // for example

此外,您可以使用整个 Ant Design CSS 而不是单独使用每个组件。我的意思是:

import 'antd/dist/antd.css';

而不是这个:

import 'antd/es/button/style/css';

对于这种加载 CSS 的方式,最好在项目的根目录或者 CSS 系统中导入一次。

提示:我更喜欢第一个,使用babel plugin,它更安全、更清晰、更易读。

【讨论】:

【参考方案2】:

替换

@import './../node_modules/antd/dist/antd.css';

@import '~antd/dist/antd.css';

这在您链接的文档中给出。

【讨论】:

我用了这个,我在./main.css (../node_modules/css-loader/dist/cjs.js??ref--5-1!../node_modules/postcss-loader/src??postcss!./main.css) Module build failed (from ../node_modules/postcss-loader/src/index.js):得到了这个错误ERROR 您是否尝试删除您的 node_modules 文件夹并再次执行npm install

以上是关于蚂蚁设计页面重载css渲染延迟的主要内容,如果未能解决你的问题,请参考以下文章

介绍同步加载异步加载延迟加载

在页面重载时,我的Gatsby.js页脚组件渲染了两次。

vue的数据过滤导致页面渲染慢

vue-lazy-render: 延迟渲染大组件,增强页面切换流畅度

在页面上延迟应用 css

浏览器极致性能调优之——浏览器合成与渲染层优化