首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue3设置函数

Vue3设置函数
EN

Stack Overflow用户
提问于 2022-04-06 07:30:03
回答 1查看 105关注 0票数 1

我很难理解如何构造我的Vue3应用程序。

我将一个名为“天”的道具传递到我的组件中,并希望以百分比计算我的计算函数中的时间量。根据这个值,我想调整进度条的宽度。我该怎么做?

我试过手表挂钩,但它没有找到进度条参考。

代码语言:javascript
复制
<template>
    <div class="progress-bar" ref="progressbar">  {{ percentages}}   </div> 
</template>

<script>
import { computed, ref } from "@vue/reactivity";
import { watch} from 'vue'
export default {
    name: 'Progress',
    props:{
        day: Number,
    },
    setup(props){

        const progressbar = ref(null);

        const percentages = computed (() =>{
            return  ( props.day / 14 * 100) .toFixed();
        })
        watch(percentages, () => {
            progressbar.style.width = `${percentages.value}%`;
        })

        return { percentages, progressbar }

    }    

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-06 08:22:06

你可以试试内联样式绑定

代码语言:javascript
复制
<template>
  <div 
    class="progress-bar"
    ref="progressbar"
    :style="{ 'width': percentages + '%' }"
  >{{ percentages }}</div> 
</template>

<script>
import { computed, ref } from "@vue/reactivity";
export default {
    name: 'Progress',
    props: {
        day: Number,
    },
    setup(props) {

        const progressbar = ref(null);

        const percentages = computed(() =>{
            return (props.day / 14 * 100).toFixed();
        })

        return { percentages, progressbar }
    }    
}

使用script setup时,相同的代码会更短一些

代码语言:javascript
复制
<template>
  <div 
   class="progress-bar"
   ref="progressbar"  
   :style="{ 'width': percentages + '%' }">{{ percentages }}
  </div> 
</template>

<script setup>
import { computed, ref } from 'vue';
const props = defineProps({
  day: Number
})

const progressbar = ref(null);

const percentages = computed(() => props.day / 14 * 100).toFixed())
</script>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71762692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档