You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
vue-webtopo-svgeditor/src/components/DynamicTest1.vue

48 lines
1.1 KiB
Vue

<template>
<div style="padding: 30px">
<button @click="change('1')">1</button>
<button @click="change('2')">2</button>
<button @click="change('3')">3</button>
<component :is="componentTag"
:color=color
:translate=translate></component>
</div>
</template>
<script>
var componentA = {
template: "<div style=\"color:red\">我是 {{color}}</div>",
props: ["color"]
}
var componentB = {
template: `<polygon points="0,-8 5,0 10,-8" :fill="color" :stroke="color" stroke-width="2" :transform="translate"></polygon>`
, props: ['color', 'translate']
}
var componentC = {
template: `<div style="color:rebeccapurple">我是 componentC</div>`
}
export default {
components: { componentA, componentB, componentC },
data () {
return {
componentTag: '',
color: '测试颜色',
translate: '测试坐标'
}
},
methods: {
change (index) {
console.log(111);
if (index == 1) {
this.componentTag = 'componentA'
}
else {
this.componentTag = 'componentB'
}
},
}
}
</script>
<style scoped>
</style>