A few months late... We had to port our D3 charting to Vue.js recently. We decided that instead of using D3's DOM manipulation, it would be much better if we relied solely on Vue thus maintaining reactivity etc.
It turned out to be relatively easy:
d property of each element in mounted(), watchers, computed properties