Alexey Velikiy
8 years ago
5 changed files with 84 additions and 52 deletions
@ -1,22 +0,0 @@ |
|||||||
<template> |
|
||||||
<div> |
|
||||||
<svg width="500" height="300"></svg> |
|
||||||
</div> |
|
||||||
</template> |
|
||||||
|
|
||||||
<script> |
|
||||||
const d3 = require('d3'); |
|
||||||
export default { |
|
||||||
mounted: function() { |
|
||||||
var svg = d3.select(this.$el).select('svg'); |
|
||||||
svg |
|
||||||
.append('circle') |
|
||||||
.attr('cx', '250') |
|
||||||
.attr('cy', '150') |
|
||||||
.attr('r', '100') |
|
||||||
} |
|
||||||
} |
|
||||||
</script> |
|
||||||
|
|
||||||
<style> |
|
||||||
</style> |
|
@ -1,25 +0,0 @@ |
|||||||
<!-- <template> |
|
||||||
Is should be missing, otherwise |
|
||||||
render() function will not execute |
|
||||||
</template> --> |
|
||||||
|
|
||||||
<script> |
|
||||||
const d3 = require('d3'); |
|
||||||
export default { |
|
||||||
render: function(createElement) { |
|
||||||
var el = createElement('svg') |
|
||||||
// console.log(el.elm); |
|
||||||
var svg = d3.select(el.elm); |
|
||||||
svg.attr('width', '500') |
|
||||||
// d3.select(el.elm) |
|
||||||
// .append('circle') |
|
||||||
// .attr('cx', '250') |
|
||||||
// .attr('cy', '150') |
|
||||||
// .attr('r', '100') |
|
||||||
return el; |
|
||||||
} |
|
||||||
} |
|
||||||
</script> |
|
||||||
|
|
||||||
<style> |
|
||||||
</style> |
|
@ -0,0 +1,30 @@ |
|||||||
|
<!-- |
||||||
|
Links: |
||||||
|
Components: https://vuejs.org/v2/guide/components.html |
||||||
|
|
||||||
|
Advanced: |
||||||
|
Component Lifecyrcle: https://vuejs.org/v2/guide/instance.html#Lifecycle-Diagram |
||||||
|
Virtaul DOM: https://medium.com/js-dojo/whats-new-in-vue-js-2-0-virtual-dom-dc4b5b827f40#.hexwxh9m3 |
||||||
|
--> |
||||||
|
|
||||||
|
<template> |
||||||
|
<svg width="500" height="300"></svg> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
const d3 = require('d3'); |
||||||
|
export default { |
||||||
|
mounted: function() { |
||||||
|
// this.#el - is the root element in <template> |
||||||
|
// in this case it is <svg> tag |
||||||
|
d3.select(this.$el) |
||||||
|
.append('circle') |
||||||
|
.attr('cx', '250') |
||||||
|
.attr('cy', '150') |
||||||
|
.attr('r', '100') |
||||||
|
} |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style> |
||||||
|
</style> |
@ -0,0 +1,49 @@ |
|||||||
|
<!-- |
||||||
|
Links |
||||||
|
Data: https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function |
||||||
|
Form Input Bindings: https://vuejs.org/v2/guide/forms.html#Basic-Usage |
||||||
|
Watchers: https://vuejs.org/v2/guide/computed.html#Watchers |
||||||
|
--> |
||||||
|
|
||||||
|
<template> |
||||||
|
<div> |
||||||
|
<svg width="500" height="300"></svg> |
||||||
|
<br> |
||||||
|
<input |
||||||
|
type="range" |
||||||
|
v-model="circleSize" |
||||||
|
min="1" |
||||||
|
max="100" |
||||||
|
step="1" |
||||||
|
> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
const d3 = require('d3'); |
||||||
|
export default { |
||||||
|
data: function() { |
||||||
|
return { |
||||||
|
circleSize: 50 |
||||||
|
} |
||||||
|
}, |
||||||
|
mounted: function(createElement) { |
||||||
|
var svg = d3.select(this.$el).select('svg'); |
||||||
|
this.circle = svg |
||||||
|
.append('circle') |
||||||
|
.attr('cx', '250') |
||||||
|
.attr('cy', '150') |
||||||
|
.attr('r', this.circleSize) |
||||||
|
}, |
||||||
|
watch: { |
||||||
|
circleSize: function(newValue) { |
||||||
|
this.circle |
||||||
|
.attr('r', newValue) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style> |
||||||
|
</style> |
Loading…
Reference in new issue