gpt4 book ai didi

javascript - 如何在 Vue.js 中使用 v-for 动态创建一个新的 div?

转载 作者:搜寻专家 更新时间:2023-10-30 22:14:48 31 4
gpt4 key购买 nike

我想根据数组中存在的元素数量动态创建 div。 div 包含由 ProgressBar.js 创建的 html 元素。

这是 Vue.js 代码

import ProgressBar from 'progressbar.js'
var bar;

export default {
data() {
return {
fitness: ['Run', 'Cycle'],
val: 0.65
}
},

mounted(){
this.showProgressBar(this.val);
},


created: function() {

},

methods:{
showProgressBar: function(val){
new ProgressBar.Circle('#container',{
trailColor: 'gainsboro',
trailWidth: 20,
color: 'teal',
strokeWidth: 20
}).animate(val);
}
}
}
<div class="content" v-for="fitness in fitness">
<span>{{ fitness }}</span>
<div id="container"></div>
</div>

由于一个 id 仅与一个 div 相关联,因此我无法执行将创建另一个 div 的新 ProgressBar.Circle 对象。每次执行新的 ProgressBar.circle 时,有没有办法在 v-for 中动态创建一个具有不同 id 的新 div?有人可以帮我吗?

最佳答案

这是一个包装 progressbar.js 的可重用组件。

<template>
<div class="container"><div ref="bar"></div></div>
</template>
<script>
import ProgressBar from "progressbar.js"

export default {
props:["options", "val"],
mounted(){
new ProgressBar.Circle(this.$refs.bar, this.options).animate(this.val)
}
}
</script>
<style>
.container{
width:100px;
height: 100px
}
</style>

这是它在模板中的用法:

<div v-for="fit in fitness" class="fitness">
<div>{{fit.name}}</div>
<progress-bar :val="fit.val" :options="options"></progress-bar>
</div>

工作 Example .

关于javascript - 如何在 Vue.js 中使用 v-for 动态创建一个新的 div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45720514/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com