You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue中如何将props传递给data-*属性并展示数据?

如何在Vue中把Props传递给data-*属性?

你当前代码里的data-progress="{{ percent }}"写法有误,Vue模板中不能在HTML属性内使用双大括号插值,需要用v-bind指令(或简写冒号)来绑定动态属性值。

正确的绑定方式有两种:

  • 完整指令写法:v-bind:data-progress="percent"
  • 简写形式(日常开发更常用)::data-progress="percent"

修改后的完整代码如下:

<script setup>
const props = defineProps({
    percent: {
        type: String,
        default: '0'
    }
})
</script>

<template>
    <div class="progress-circle" :data-progress="percent">
        <div class="circle">
            <div class="full progress-circle__slice">
                <div class="progress-circle__fill"></div>
            </div>
            <div class="progress-circle__slice">
                <div class="progress-circle__fill"></div>
                <div class="progress-circle__fill progress-circle__bar"></div>
            </div>
        </div>
        <div class="progress-circle__overlay">{{ percent }}</div>
    </div>
</template>

这样绑定后,data-progress属性就会正确显示props传递过来的percent值。如果后续把percent的类型改成Number也没问题,Vue会自动将其转换为字符串赋值给data属性。

内容的提问来源于stack exchange,提问作者Дмитрий Моисеев

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 09:42:07