Dùng khi component nhận props ổn định, render tốn kém, và parent re-render thường xuyên mà props không đổi.
KHÔNG dùng khi: component luôn nhận props mới (objects/arrays tạo mới), component render nhẹ, hoặc dùng inline callbacks (phá vỡ memo).
Use it when a component receives stable props, has an expensive render, and its parent re-renders frequently without changing those props.
Do NOT use it when: the component always receives new props (fresh objects/arrays), the component is cheap to render, or you pass inline callbacks (which break memoization).