习惯追踪是自我提升和目标实现的重要组成部分。这款Vue.js卡片式习惯追踪器可帮助用户轻松管理和跟踪他们的日常习惯,提供直观的视觉反馈和进度监控。
这款习惯追踪器具有以下基本功能:
1. 设置状态和数据
首先,我们使用Vue.js的ref
钩子创建一个可变的habits
数组,它存储了所有习惯信息。
import { ref } from 'vue'
const habits = ref([
// ...
])
2. 渲染习惯列表
我们在模板中使用v-for
循环遍历habits
数组,并为每个习惯创建一个卡片。
<template>
<div class="grid grid-cols-2 gap-4">
<div v-for="habit in habits" :key="habit.id">
<!-- ... -->
</div>
</div>
</template>
3. 设置卡片样式
每个卡片的样式根据习惯的状态进行设置。我们使用颜色编码来表示不同的状态:
.bg-green-500 {
background-color: #52c41a;
}
.bg-red-500 {
background-color: #d9480f;
}
.bg-yellow-500 {
background-color: #f4b400;
}
4. 显示进度统计信息
在顶部栏中,我们显示一个进度环,表示用户完成习惯的整体百分比。
<template>
<div class="flex items-center justify-between mb-4">
<div class="text-lg font-semibold">Today goal</div>
<div class="text-3xl font-bold text-green-500">{{ progress }}%</div>
</div>
</template>
5. 添加新习惯
我们使用一个带有v-model
的输入字段允许用户添加新习惯。
<template>
<div class="flex items-center justify-center p-4 border-t border-gray-200">
<div class="flex items-center space-x-4">
<!-- ... -->
<div
class="relative w-10 h-10 rounded-full bg-green-500 flex items-center justify-center"
>
<IconParkTwoTone name="add" size="24" color="#fff" />
</div>
<!-- ... -->
</div>
</div>
</template>
6. 删除习惯
我们使用v-on:click
事件监听器,当用户点击删除按钮时触发删除习惯的操作。
<template>
<div class="flex items-center justify-between">
<div class="flex items-center">
<!-- ... -->
</div>
<div class="flex items-center">
<IconParkTwoTone name="delete" size="16" color="#999" @click="deleteHabit(habit)" />
</div>
</div>
</template>
开发这款习惯追踪器让我们学到了很多关于Vue.js、状态管理和组件化开发的知识。
未来,我们计划扩展这款习惯追踪器,增加以下功能: