1,svg属性

2,D3多使用函数式编程(函数作为参数传入函数中)

例子:

  1. const xScale = d3.scale.linear() // 定义一个函数
  2. .domain([0, d3.max(data, xValue)])
  3. .range([0, innerWidth]);
  4. const xAxis = d3.axisLeft(xScale) // 函数作为参数传入 axisLeft 中
  5. g.append('g').call(xAxis) // xAxis作为参数传入.call()中

注:A.call(B) —— 表示把 A 作为一个参数放到 B 的函数中
例如:svg.call( tip ) 表示把svg放到 tip函数中, 即tip(svg)

3,D3核心:Enter,Update,Exit —— 数据和元素绑定

3.1)Enter:.enter() 类似一个占位符,没有数据的时候,绑定元素
3.2)update:更新数据实现元素的修改
1).data(data) —— 把数据和元素绑定,通过修改数据,实现元素的修改,一般和动画一起使用
2) .merge() 将两个选项合在一起
3.3)Exit:删除没有数据的元素,一般为删除
3.4)把三个状态方法合并为一个方法,.data().join() => 这个方法可以自己处理enter,update,exit
缺点:定制性差(所以项目中没有使用)