该卡片组件可用于构建交互式用户界面,允许用户在不同选项之间进行选择。例如,它可用于创建调查问卷、选择器或任何需要用户输入的场景。
该组件提供以下基本功能:
1. 创建数据模型
首先,使用 Vue.js 的 ref
钩子创建数据模型,用于存储组件状态:
const data = ref({
level: 'newbie',
})
2. 渲染卡片
在模板中,使用 HTML 和 CSS 渲染卡片。它包括一个标题、一组选项以及用于导航的按钮:
<div class="bg-white rounded-lg shadow-lg w-1/2">
<div class="flex justify-between items-center p-4 border-b border-gray-200">
<h1 class="text-xl font-semibold">Your activity</h1>
<div class="flex items-center space-x-2">
<span>this is used in getting & personalised results & plans for you</span>
</div>
</div>
<div class="p-4">
<div class="flex items-center justify-between">
<div class="flex items-center space-x-2">
<div class="w-2 h-2 rounded-full bg-blue-500"></div>
<span class="text-sm font-semibold">newbie</span>
</div>
<div class="flex items-center space-x-2">
<div class="w-2 h-2 rounded-full bg-gray-300"></div>
<span class="text-sm font-semibold">skilled</span>
</div>
<div class="flex items-center space-x-2">
<div class="w-2 h-2 rounded-full bg-gray-300"></div>
<span class="text-sm font-semibold">expert</span>
</div>
</div>
<div class="mt-4">
<button class="bg-blue-500 hover:bg-blue-700 text-white font-semibold py-2 px-4 rounded" @click="prev()">PREV</button>
<button class="bg-blue-500 hover:bg-blue-700 text-white font-semibold py-2 px-4 rounded float-right" @click="next()">NEXT</button>
</div>
</div>
</div>
3. 处理按钮点击事件
在组件的脚本中,使用 @click
事件处理程序处理按钮点击事件。这些事件处理程序更新 level
数据,以导航到不同的选项集:
const prev = () => {
// 导航到上一个选项集
}
const next = () => {
// 导航到下一个选项集
}
4. 样式化卡片
使用 CSS 样式化卡片,使其具有所需的外观和感觉。它包括边框、阴影、字体和颜色:
.bg-white {
background-color: #ffffff;
}
.rounded-lg {
border-radius: 0.5rem;
}
.shadow-lg {
box-shadow: ...;
}
.w-1/2 {
width: 50%;
}
.flex {
display: flex;
}
.justify-between {
justify-content: space-between;
}
.items-center {
align-items: center;
}
.p-4 {
padding: 1rem;
}
...
开发此卡片组件的过程让我深入了解了 Vue.js 中数据绑定、事件处理和样式化的概念。它可以作为构建各种交互式用户界面的基础。
未来拓展与优化: