【发布时间】:2017-11-15 05:40:51
【问题描述】:
我正在尝试将 D3 与 vue.js 集成。
我正在遵循这个简单的指南:https://bost.ocks.org/mike/bar/
指南要求为每个新栏附加一个新 div。
我已经完成了与自定义指令的集成,在附加的 sn-p 中。
我想使用 vue.js 的强大功能,而不是追加新的 div,我想用 props 追加新的组件...
如何从指令中添加新组件?
var app = new Vue({
el: '#app',
data: {
array: [4, 8, 15, 16, 23, 42]
},
directives: {
chart: {
bind(element, array) {
d3.select(element)
.selectAll('div')
.data(array.value)
.enter()
.append('div')
.style('width', barValue => {
return barValue * 10 + 'px'
})
.text(barValue => {
return barValue
})
}
}
}
})
.chart div {
font: 10px sans-serif;
background-color: steelblue;
text-align: right;
padding: 3px;
margin: 1px;
color: white;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<script src="https://unpkg.com/vue@2.3.4"></script>
<div id="app">
<div v-chart="array" class="chart">
</div>
</div>
【问题讨论】:
标签: javascript d3.js vue.js