Saya melihat bahwa React.forwardRef tampaknya menjadi cara yang disetujui untuk meneruskan referensi ke komponen fungsional anak, dari dokumen reaksi:
const FancyButton = React.forwardRef((props, ref) => (
<button ref={ref} className="FancyButton">
{props.children}
</button>
));
// You can now get a ref directly to the DOM button:
const ref = React.createRef();
<FancyButton ref={ref}>Click me!</FancyButton>;
Namun, apa keuntungan melakukan ini daripada hanya melewati prop kustom ?:
const FancyButton = ({ innerRef }) => (
<button ref={innerRef} className="FancyButton">
{props.children}
</button>
));
const ref = React.createRef();
<FancyButton innerRef={ref}>Click me!</FancyButton>;
Satu-satunya keuntungan yang dapat saya pikirkan adalah mungkin memiliki api yang konsisten untuk referensi, tetapi apakah ada keuntungan lain? Apakah melewati props kustom memengaruhi perbedaan ketika harus merender dan menyebabkan perenderan tambahan, tentu saja tidak karena ref disimpan sebagai status yang bisa berubah di current
bidang?
Katakanlah misalnya Anda ingin melewatkan banyak referensi (yang tbh, mungkin mengindikasikan bau kode, tetapi tetap saja), maka satu-satunya solusi yang dapat saya lihat adalah menggunakan alat peraga customRef.
Saya kira pertanyaan saya adalah apa nilai menggunakan forwardRef
lebih dari prop kustom?