You can have a bit of both. D3 has a dependency "d3-scale" [0], which is a perfect choice if you'd like D3 to do the math and React to take care of the DOM.
0: https://medium.com/@mbostock/introducing-d3-scale-61980c5154...