Dois-je utiliser ref ou findDOMNode pour obtenir réagir racine dom nœud d'un élément?

Je suis dans une situation où je veux faire de dom-nœud de calcul de la taille (en haut, en bas et à la taille des propriétés de rendu des nœuds du DOM)

Ce que je suis en train de faire maintenant, sur le componentDidUpdate méthode est d'appeler findDOMNode sur ce:

 componentDidUpdate() {
        var node = ReactDOM.findDOMNode(this);

        this.elementBox = node.getBoundingClientRect();
        this.elementHeight = node.clientHeight;
        //Make calculations and stuff
}

Cela fonctionne bien, mais je suis un peu inquiet au sujet de la performance, de réagir et de meilleures pratiques. Plusieurs lieux de discussions sur l'utilisation de ref de la propriété au lieu de findDOMNode, mais ils sont tous pour l'enfant des éléments du dom, sur mon cas, je veux seulement la racine de l'arbre DOM de mon composant.

L'alternative à l'aide de ref peut ressembler à ceci:

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
}

Pour être honnête, en joignant une ref de rappel à la racine de mes nœud dom juste pour obtenir de référence ne se sent pas correct pour moi.

Ce qui est considéré comme la meilleure pratique sur ce cas ? Qui a de meilleures performances ?

OriginalL'auteur Danielo515 | 2017-04-16