데이터를 무언가와 결합하는 것
D3.js
에서는 DOM Element, Selection, Data가 결합되는 것을 말한다.
새로운 데이터가 추가될 때, 해당 데이터를 바인딩 하는 새로운 요소에 대한 동작
기존에 존재하던 요소의 변경에 대한 동작
더 이상 필요하지 않은 요소들을 처리하는 동작
selection.data([data[, key]])
data
를 지정하지 않은 경우, 해당 Selection의 데이터 배열을 반환한다.
원하는 데이터 배열을 data
에 넣으면, 데이터의 수 만큼 Selection
에 해당 데이터가 바인딩 된다.
바인딩 되면 실제로 Element
가 생성되는 것은 아니고, 데이터의 길이만큼 Empty Selection
이 생성된다.
key
함수를 통해 데이터 조인을 할 때 식별자를 지정할 수 있으며, key
함수는 각 데이터 포인트를 매개변수로 받는다.
key
를 지정하지 않으면 기본적으로 배열의 index
를 기준으로 데이터를 join한다.
selection.join(enter[, update][, exit])
enter, update, exit 각각 함수이지만, enter는 예외적으로 문자열로도 지정이 가능하다.
exit
과 update
는 지정하지 않아도 자동으로 호출되며, enter
를 문자열로 지정했다면 아래처럼 동작한다.
selection.join(
enter => enter.append("enter string // circle, rect, text..."),
update => update,
exit => exit.remove()
)
selection.join
의 호출 결과는 병합된 enter
와 update
Selection을 정렬하여 반환한다.참고 자료