在官网有着丰富demo的基础上,使用d3绘制一副静态图表并不是难事。但我们更多的需求是:根据用户操作动态获取数据库中数据,进而刷新视图。
最生硬的方法:删除element,重新绘制;
d3.select('#svgID').remove(); //删除整个SVG
d3.select('#svgID')
.selectAll('*')
.remove(); //清空SVG中的内容
此方法的确可以做到刷新视图的效果。
优点:快准狠!
缺点:
1. 不能实现友好的动画切换效果
2. 不能保留之前用户操作的状态
正确打开方式:利用enter/exit更新视图
先理解enter/exit 二者的作用