我们看到使用CRA创建的新的react项目中,新增加了reportWebVitals,看看这玩意是干啥的,原来是帮助我们进行项目的性能分析。
index.js
import React from "react";
import ReactDOM from "react-dom/client";
import "./index.css";
import App from "./App";
import reportWebVitals from "./reportWebVitals";
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(
<React.StrictMode>
<App />
</React.StrictMode>
);
// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals(console.warn);
reportWebVitals.js
const reportWebVitals = onPerfEntry => {
if (onPerfEntry && onPerfEntry instanceof Function) {
import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
getCLS(onPerfEntry);
getFID(onPerfEntry);
getFCP(onPerfEntry);
getLCP(onPerfEntry);
getTTFB(onPerfEntry);
});
}
};
export default reportWebVitals;
getCLS()
最大内容渲染时间:指的是从用户请求网址到窗口中渲染最大可见内容所需要的时间(最大可见内容通常是图片或者视频,或者大块的文本)
getFID()
首次输入延迟:指的是从用户首次与网页互动(点击链接、按钮等)到浏览器响应此次互动之间的时间。用于判断网页进入互动状态的时间
getFCP()
首次内容绘制,标记浏览器渲染来自 DOM 第一位内容的时间点,内容可能是文本、图像等元素。
getLCP()
用户请求网址到窗口中渲染最大可见内容所需要的时间(最大可见内容通常是图片或者视频,或者大块的文本)
getTTFB()
首字节到达的时间点
网友评论