D3.js的V5版本-Vue框架中使用(第二章) ---元素及操作、Update、Enter、Exit

1选择元素

   在D3.js中,选择元素的函数有两个

  • d3.select() 
  • d3.selectAll()     

    这两个函数返回的就是选择集

常见的用法如下

let svg = body.select("svg");//选择body中的svg元素  

let p = body.selectAll("p");//选择body中所有的p元素  

2、元素操作

name为元素名称; before:css选择器名称

添加(追加):append(name) ; 插入insert(name, before);删除remove()

3绑定数据

 D3.js中绑定数据的两个函数

  • data():讲一个数组绑定到选择集上,数组各项和选择集各元素绑定,也就是一一对应的关系
  • datum():将一个数据绑定到所有选择集上

4、update、enter、exit

简单总结:

数据长度 > 元素个数(enter)
数据长度 = 元素个数(update)

数据长度 < 元素个数(exit)

5、vue用例

< template lang= 'pug' >
div .basic-pane( :id= "id")
p hello world
p hello world-2
</ template >

< script >
import * as d3 from 'd3'
export default {
name: '',
data () {
return {
id: ''
}
},
methods: {
uuid () {
function s4 () {
return Math. floor(( 1 + Math. random()) * 0x10000)
. toString( 16)
. substring( 1)
}
return (
s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4()
)
},
},
created () {
this. id = this. uuid()
},
mounted () {
//选择p元素
let p = d3. select( this. $el). selectAll( 'p')
//数据长度 > 元素个数(enter); 数据长度 = 元素个数(update); 数据长度 < 元素个数(exit)
let dataSet = [ 'Hello D3 - v3', 'Hello D3 - v4', 'Hello D3 - v5']
// let dataSet = ['Hello D3 - v10']
//获得update部分(update处理:更新)
let update = p. data( dataSet)
update. text( function ( d) {
return d
})

//获得enter的部分(enter处理:添加)
let enter = update. enter()
enter. append( 'p')
. text( function ( d) {
return d
})

//获得exit的部分(exit处理:去除)
let exit = update. exit()
exit. remove()
}
}
</ script >

< style lang= "scss" scoped >
.basic-pane {
width: 100%;
height: 1000px;
}
</ style >


猜你喜欢

转载自blog.csdn.net/davidpan1234/article/details/80704394