Quando trabalhammos com aplicações que fazem manipulação com DOM
precisamos do lifecycle
do react.
Para trabalhar com lifecycle
precisamos ou criar um componente com class
ou utilizando o React.createClass({})
O ref
recebe uma função e ela é executda assim que esse componente é renderizado. Dessa forma conseguimos pegar o elemento no DOM
<input type='text' ref={(node) => (this.myInput = node)} />
No código acima conseguimos pegar o elemento atrávez do atributo e passamos uma referência dele para a variável this.myinput
.
O react utilizando essa propriedade também já desliga o evento fazendo com que não fique pendurado, quando o componente for destruido.
Essa forma mostrada só devemos utiliza-lá quando tivermos utilizando libs de terceiros e quando não tivermos acesso a propriedade pela api do react. Sempre que possível deixe o react manipular o DOM a menos nos caso que o react não consiga trabalhar.