【发布时间】:2020-12-30 11:13:15
【问题描述】:
我在一个新的 umi 项目中包含了 react-pdf:
- PDF-Generation 150 Text-components 花了 arround 311.44 ms 没有 umi
- 使用 umi:7179.40 毫秒
在 umi 项目中,每个元素的占用量大约增加 10 倍!
我试过的代码示例
import React from "react";
import "./styles.css";
import { Document, Page, pdf, Text, View } from "@react-pdf/renderer";
export default function App() {
const pdfClickHandler = async () => {
console.time("PDF generation took:");
await pdf(
<Document>
<Page>
<View>
{Array.from(Array(150).keys()).map((key) => (
<Text key={key}>text-element</Text>
))}
</View>
</Page>
</Document>
).toBlob();
console.timeEnd("PDF generation took:");
};
return (
<div className="App">
<button onClick={pdfClickHandler}>
Generate fast PDF (without ant-design-pro)
</button>
</div>
);
}
注意:以下示例是ant-design-pro 项目。但错误发生在所有umi-js 项目中。
- 快速版:https://codesandbox.io/s/damp-thunder-rybh7
- 慢版:https://codesandbox.io/s/confident-leaf-hgk7c?file=/src/pages/user/login/index.tsx
- 慢版(GitHub):https://github.com/mleister97/ant-design-react-pdf-slow
- (慢版是ant-design-pro的全新设置,只是修改了“startup”-page)
- (确保您打开浏览器 (:8000) 选项卡,因为应用程序在此端口上提供服务,并直接检查 浏览器控制台,而不是代码和框之一)
调用 toBlob 时幕后发生了什么?
我该如何解决这个问题?
【问题讨论】:
-
评论不用于扩展讨论;这个对话是moved to chat。
标签: javascript reactjs ant-design-pro react-pdf umijs