memo
对子组件进行缓存,比如父组件的一个状态改变了,即使传给子组件的状态没有变也会重新渲染子组件的,所以可以用它来包裹子组件函数进行缓存,当传递给子组件的props不变,子组件可以避免重新创建。
只有创建子组件的代价大的时候才用,不要滥用(缓存消耗可能比直接创建子组件还浪费性能)
lazy
和Suspend配合实现懒加载
jsx
import React, { Suspense, lazy } from 'react';
// 使用React.lazy懒加载组件
const OtherComponent = lazy(() => import('./OtherComponent'));
function App() {
return (
<div>
{/* 使用Suspense提供加载状态的 fallback */}
<Suspense fallback={<div>Loading...</div>}>
<OtherComponent />
</Suspense>
</div>
);
}
export default App;
createContext
use
可以让你读取类似于 Promise 或 context 的资源的值。与 React Hook 不同的是,可以在循环和条件语句(如 if)中调用 use。但需要注意的是,调用 use 的函数仍然必须是一个组件或 Hook。
参数 :想要从中读取值的数据源。资源可以是 Promise 或 context。
返回值 :返回从资源中读取的值,类似于 fullfilled Promise 或 context。