Dark mode
Performance Optimization in React (เทคนิคเพิ่มประสิทธิภาพใน React)
การเพิ่มประสิทธิภาพเป็นสิ่งสำคัญสำหรับแอป React ที่ซับซ้อน มาดูเทคนิคต่างๆกัน
Memoization (การจำค่าเพื่อป้องกันการคำนวณซ้ำ)
ใช้ React.memo
, useMemo
และ useCallback
เพื่อป้องกันการ render ซ้ำที่ไม่จำเป็น
tsx
// ใช้ React.memo สำหรับ Component
const MemoizedComponent = React.memo(function MyComponent({ data }) {
return <div>{data}</div>;
});
// ใช้ useMemo สำหรับค่า
const computedValue = useMemo(() => expensiveCalculation(input), [input]);
// ใช้ useCallback สำหรับฟังก์ชัน
const handleClick = useCallback(() => {
doSomething(id);
}, [id]);
Virtualization (แสดงเฉพาะส่วนที่เห็นใน viewport)
tsx
import { FixedSizeList as List } from "react-window";
const Row = ({ index, style }) => <div style={style}>Row {index}</div>;
const Example = () => (
<List
height={500}
itemCount={1000}
itemSize={35}
width={300}
>
{Row}
</List>
);
Code Splitting (แบ่งโค้ดเพื่อโหลดเมื่อจำเป็น)
tsx
const OtherComponent = React.lazy(() => import("./OtherComponent"));
function MyComponent() {
return (
<Suspense fallback={<div>Loading...</div>}>
<OtherComponent />
</Suspense>
);
}
หมายเหตุ
- วัดประสิทธิภาพก่อนและหลัง optimize ด้วย React DevTools
- ใช้ Profiler เพื่อหาจุด bottleneck
- ไม่ควร premature optimization ในขั้นตอนพัฒนาแรกๆ