componentDidUpdate
yöntem etmektir üzerine benBir öğenin tepki kökü dom düğümünü almak için ref veya findDOMNode kullanmalı mıyım?
Şu anda ne yapıyorum (render DOM düğümün üst, alt ve boyut özelliklerini) bazı dom-düğüm boyutu hesaplamaları yapmak istediğiniz bir durumla ilgili değilim Bu iyi çalışıyor
componentDidUpdate() {
var node = ReactDOM.findDOMNode(this);
this.elementBox = node.getBoundingClientRect();
this.elementHeight = node.clientHeight;
// Make calculations and stuff
}
ama performansı hakkında biraz endişeliyim ve en iyi uygulamaları tepki: Bu konuda findDOMNode diyoruz. Birkaç yerde findDOMNode yerine ref
özelliğini kullanma hakkında konuşur, ama hepsi çocuk dom öğeleri için, benim durumumda sadece benim bileşenimin kök DOM düğümü istiyorum. Bu gibi görünebilir ref kullanarak
alternatif:
render(){
return (
<section // container
ref={(n) => this.node = n}>
// Stuff
</section>
}
componentDidUpdate() {
this.elementBox = this.node.getBoundingClientRect();
this.elementHeight = this.node.clientHeight;
// Make calculations and stuff
}
sadece bana doğru gelmiyor referans var olsun benim kök dom düğümüne bir ref geri arama takılarak, dürüst olmak gerekirse.
Bu vakada en iyi uygulama hangisiydi? Hangisi daha iyi bir performansa sahip?
Yeni bulduğum belgeleri tekrar okuma:> Sınıfta bir özellik belirlemek için sadece geri arama özelliğini kullanmak DOM öğelerine erişim için yaygın bir kalıptır. Tercih edilen yol, yukarıdaki örnekte olduğu gibi geri aramada özelliği ayarlamaktır. – Danielo515
Bu arada, fark ettiniz mi bilmiyorum, ama JS Standardı '{(n) => this.node = n}' hakkında "Ok işlevi atamayı geri göndermemeliyiz" konusunda şikayetçiyim. Merak ediyorum, bu yasal şikayet ya da değil – revelt