【发布时间】:2021-05-21 03:30:56
【问题描述】:
我目前正在重构我的代码以使其看起来更简洁,但我偶然发现了一个看起来并不整洁的部分,并且可能不是执行此类代码的最佳实践。
Statistics.vue - 在这里我使用了 3 次 StatisticsCard 组件,以显示每个组件的每个相关数据
<template>
<div class="statistics-section">
<img class="statistics-image" src="@/assets/img/images/img_stats@2x.png" alt="">
<h3 class="section-title">Statistieken</h3>
<p class="section-description">De studenten van Het Creiler hebben samen ...</p>
<div class="statistics-cards">
<StatisticsCard :imageUrl="require('@/assets/img/images/img_stats_km@2x.png')"
:title="'kilometers'"
:number="kilometers"
:type="'GELOPEN'"/>
<StatisticsCard :imageUrl="require('@/assets/img/images/img_stats_collected@2x.png')"
:title="'stukken'"
:number="trashCollected"
:type="'AFVAL OPGRUIMD'"/>
<StatisticsCard :imageUrl="require('@/assets/img/images/img_stats_photos@2x.png')"
:title="'foto\'s'"
:number="photosTaken"
:type="'GEDEELD'"/>
</div>
</div>
</template>
<script>
import StatisticsCard from '@/components/partials/onepager/StatisticsCard';
export default {
name: 'Statisticts',
components: {StatisticsCard},
props: {
kilometers: {
type: Number,
required: true
},
trashCollected: {
type: Number,
required: true
},
photosTaken: {
type: Number,
required: true
},
},
}
School.vue - 这是主要组件,在这里我进行所有相关的 api 调用。渲染 Statistics.vue 以显示来自 api 的所有信息。
<div class="section-grid">
<Statistics :kilometers="schoolOnepager.statistics.collectedTrashCount"
:trash-collected="schoolOnepager.statistics.schoolSharedPhotosTrashCount"
:photos-taken="schoolOnepager.statistics.schoolTotalDistanceWalked"/>
</div>
...
computed: {
schoolOnepager: function () {
return this.$store.getters.getSchoolOnepager;
},
}
有没有更好的方法可以做到这一点,而不是定义统计卡组件3次,我可以循环遍历并让它们中的每一个显示具体信息。
【问题讨论】:
标签: javascript vue.js ecmascript-6 components vue-component